SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.08.2003, 18:54:06
bweichel bweichel ist offline
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
Mit Zitat antworten
  #2  
Alt 05.08.2003, 19:03:12
Ben20
Guest
 
Beiträge: n/a
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!
Mit Zitat antworten
  #3  
Alt 05.08.2003, 19:20:19
Gweilo Gweilo ist offline
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.
Mit Zitat antworten
  #4  
Alt 06.08.2003, 09:21:15
bweichel bweichel ist offline
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
Mit Zitat antworten
  #5  
Alt 06.08.2003, 11:03:53
Viper Viper ist offline
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
Mit Zitat antworten
  #6  
Alt 07.08.2003, 10:38:34
bweichel bweichel ist offline
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
Mit Zitat antworten
  #7  
Alt 11.08.2003, 20:27:07
cubichead cubichead ist offline
Anfänger
 
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 16
Karstadt hat sicherlich sehr schnelle Server.... ;-)
Mit Zitat antworten
  #8  
Alt 15.08.2003, 04:04:43
Caliga Caliga ist offline
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">
Mit Zitat antworten
  #9  
Alt 15.08.2003, 14:11:41
ingo ingo ist offline
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
Mit Zitat antworten
  #10  
Alt 19.08.2003, 21:41:30
sinfo sinfo ist offline
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?!
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:40:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt