CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
05.08.2003, 18:54:06
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 196
|
|
"Seite wird geladen..." Wie wird´s gemacht?
Hallo liebe Leser,
auf vielen Seite gibt es doch eine Anzeige "Seite wird geladen... Bitte warten", oder ähnliches. Ich möchte diese Option auch auf meiner Seite einbauen.
Momentan sieht es bei mir auf der Seite so aus:
Ich klicke auf einen Link, dann kommt zuerst eine weise Seite und man sieht das der Browser lädt. Nach ca. 5 Sekunden (von Seite zu Seite unterschiedlich) wird dann die Seite ausgegeben/angezeigt. Jeder Benutzer der nicht weiß das der Browser daran arbeitet die Seite anzuzeigen, wird meinen es ist ein Fehler aufgetreten und verschwindet.
Wie kann ich eine solche Zwischenseite erstellen, die nur solange angezeigt wird, bis der Browser die Seite vollständig geladen hat und zur Anzeige bereit ist?
Ein kleines Scriptbeispiel wäre mir lieb.
Danke für eure Hilfe!
Gruß Björn
|
05.08.2003, 19:03:12
|
|
Sowas lässt sich IMHO nicht wirklich realisieren, die "Bitte warten" Seite sind meistens ein Flashfilm, oder nur ein Trick (erst kommt ne kleine schnell ladende Seite, dann wird auf die große Umgeleitet - das dauert dann aber genauso lange (bzw. sogar ein wenig länger)) - die beste Lösung ist also eine Seite so zu stricken, dass sie nicht mehr als 50 KB hat - dass geht dann auch recht flott zu laden!
|
05.08.2003, 19:20:19
|
Member
|
|
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
|
|
Doch. es lässt sich schon realisieren, ist aber meiner meinung nach nicht unbedingt empfehlenswert.
Vorgehensweise:
- Ein layer, das den ganzen Bildschirm bedeckt und irgendwie in der mitte "Wird geladen..." oder so steht, setzen.
- <body onload="hidelayer()">
Sobald die seite komplett geladen wurde, wird das layer versteckt, aber wie gesagt, ich würde davon abraten.
|
06.08.2003, 09:21:15
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 196
|
|
Ja das sind ja schon ganz gute Tipps. Allerdings hat die Sache einen Hacken... wenn ich bei mir auf einen Link klicke und die Seite etwas länger brauch bis sie vollständig geladen ist habe ich einen weißen Bildschirm und sonst nichts. Noch nicht einmal der Header, der ja vor der eigentlichen Seite kommen müßte wird angezeigt. Wie soll ich da noch einen seperate Seite anzeigen lassen, wenn er mir sie erst anzeigt wenn alles geladen ist.
Ich lese Daten aus einer Datenbank. Eine ganz normale Select Abfrage. Es wäre mir ja schon recht, wenn er die Datensätze direkt anzeigen würde und nacheinander auflistet. Aber nein, er liest zuerst alles aus und wenn er damit fertig ist wird es angezeigt.
Ich könnte jetzt natürlich eine Seite vorschalten in der dann der Text "Bitte warten..." steht, aber wenn ich von dieser Seite aus wiederrum das Script aufrufe, dass die lange Ladezeit hat, dann habe ich doch wieder eine weiße Seite oder bleibt der Text dann solange stehen, bis die nächste Seite geladen ist?
Es muß dafür doch eine Lösung geben, oder nicht?
Gruß Björn
|
06.08.2003, 11:03:53
|
Anfänger
|
|
Registriert seit: Jun 2002
Beiträge: 75
|
|
Hi!
Schau Dir doch mal das an:
http://www.tutorials.de/showthread.p...ight=Preloader
Ist JavaScript und sollte Dir eigentlich weiterhelfen.
!Weiter unten steht noch etwas was im Code ersetzt werden muss!
Gruss, Viper
|
07.08.2003, 10:38:34
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 196
|
|
Also ich hab mich jetzt dazu entschlossen einen Layer zu bauen, der sich beim laden über die Seite legt und den Text "Seite wird geladen! Bitte warten..." ausgibt.
Allerdings habe ich noch immer das Problem das eine weiße Seite im Hintergrund angezeigt wird. Wenn ihr euch mal die Karstadt Präsenz anschaut, seht ihr das beim laden die alte Seite solange bestehen bleibt bis die neue geladen ist.
Wie macht man sowas? Die lesen die Daten ja auch aus einer Datenbank aus und haben keine weise Seite beim laden.
Danke!
Gruß Björn
|
11.08.2003, 20:27:07
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 16
|
|
Karstadt hat sicherlich sehr schnelle Server.... ;-)
|
15.08.2003, 04:04:43
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 5
|
|
ich glaube, das "bitte warten" das du meinst, funktioniert so:
die bitte warten seite ruft sich regelmässig selbst auf und wenn eine bestimmte datei verfügbar ist, wird diese statt der bitte warten meldung includet.
also: per PHP checken, ob die temp-datei (oder wie auch immer man das macht)
fertig ist.
vielleicht die datenbankabfrage in eine temp-datei, die mit flock() so lange blockiert wird, bis sie fertig ist.
die aufrufende seite zeigt "bitte warten" falls fopen() fehlschlägt und ruft sich dann selbst wieder auf.
(z.B. mit <meta HTTP-EQUIV="Refresh" CONTENT="5; URL=http://www.michselbst.com">
|
15.08.2003, 14:11:41
|
Junior Member
|
|
Registriert seit: Apr 2002
Beiträge: 248
|
|
ProgressClass
es gibt auch eine ziemlich gute php-klasse die mit der browscap.ini arbeitet und eine progress-bar erzeugt.
vorteile:
- der/die benutzerIn weiß wie weit der fortschritt ist
- bei browsern, die das teil nicht unterstützen, wirds nicht angezeigt und ausgeführt. es gibt auch keine fehlermeldung. eine eigene browsererkennung ist nicht notwendig.
nachteile:
- funktioniert nur auf windows-servern
- geht nur mit javascript (und dhtml glaub ich - so genau hab ichs mir nicht angeschaut)
- gewöhnungsbedürftig damit zu arbeiten, weil die progress-bar bei jeder aktion natürlich mitberechnet werden muss.
aber alles in allem: für einen netten effekt allemal ausprobierenswert.
zahlt sich meines erachtens nur aus "wenns mal wieder länger dauert" ;-).
beispielweise wenn über irgendein cms viele mails ausgeschickt werden, um den fortschritt anzuzeigen.. da ists ganz praktisch.
lg, ingo
|
19.08.2003, 21:41:30
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 106
|
|
Lösungsvorschlag
schau mal bei www.sportwissenschaften.info/test vorbei und starte die Suche. Die Lösung bei mir: Ich habe den php-CODE HINTER den Header gelegt. Damit wird ERST die Warte-Grafik geladen. AM ENDE der Seite wird die Grafik dann mit JavaScript ausgewechselt.
Problem gelöst?!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43:56 Uhr.
|