"Vorausschauendes"-Laden einer Seite
Rainer
- html
0 Cybaer0 eddi0 Mathias Bigge0 FraFu
Hallo,
ich möchte versuchen, einen Seitenübergang zwischen zwei Seiten zu optimieren bzw. zu verbessern, zwischen zwei Seiten, die zwangsläufig nacheinender besucht werden, der Wechsel auf die zweite Seite erfolgt durch Klick auf einen nicht zu übersehenden Link bzw. automatisch nach Ablauf voreingestellter Zeit.
Gibt es eine Möglichkeit (mir selbst ist keine bekannt), diese zweite Seite schon (sozusagen "im Hintergrund") zu laden, während die erste Seite noch angezeigt wird, sodass nach Ablauf der voreingestellten Zeit bzw. beim Klick auf den Link die schon im Browsercache liegende Seite "sofort" eingeblendet wird ?
MfG
Rainer
Hi,
Gibt es eine Möglichkeit (mir selbst ist keine bekannt), diese zweite Seite schon (sozusagen "im Hintergrund") zu laden, während die erste Seite noch angezeigt wird, sodass nach Ablauf der voreingestellten Zeit bzw. beim Klick auf den Link die schon im Browsercache liegende Seite "sofort" eingeblendet wird ?
Pack die Seite2 enfach in einen unsichtbaren IFrame auf Seite1 (und bete, daß das Cache-Verhalten "günstig" eingestellt ist ;-)).
Ansonsten gibt es nur browserspezifische Möglichkeiten.
Gruß, Cybaer
Hallo,
da fallen mir grundsätzlich zwei verschiedene Wege ein:
Im ersten Dokument wird mit einem Iframe/Objket dafür gesorgt, daß das zweite Dokument geladen wird. Auf der Serverseite wird dieses Dokument mit entsprechenden HTTP-Headern ausgeliefert, die den Client ein erneutes Abrufen des Dokuments ersparen.
Das erste Dokument ist gleichzeitig auch das zweite Dokument. Der Dokumenteninhalt wird in zwei Bereiche gegliedert, wobei ein Bereich durch CSS immer ausgeblendet wird. Das Ein- und Ausblenden wird durch Javascript realisiert.
Gruß aus Berlin!
eddi
Hello out there!
Das erste Dokument ist gleichzeitig auch das zweite Dokument. Der Dokumenteninhalt wird in zwei Bereiche gegliedert, wobei ein Bereich durch CSS immer ausgeblendet wird.
Nein! Beide müssen eingeblendet sein; einer wird mit JavaScript(!) ausgeblendet ...
Das Ein- und Ausblenden wird durch Javascript realisiert.
... weil Clients ohne JavaScript das nicht können und deshalb in dem Falle beide Inhalte angezeigt werden müssen.
See ya up the road,
Gunnar
Hi,
Das erste Dokument ist gleichzeitig auch das zweite Dokument. Der Dokumenteninhalt wird in zwei Bereiche gegliedert, wobei ein Bereich durch CSS immer ausgeblendet wird. Das Ein- und Ausblenden wird durch Javascript realisiert.
Wenn der URL sich nicht zu ändern braucht, dann kann man auch einfach ein normales Frameset verwenden, bei dem Frame1 100%, Frame2 die Größe 0 hat. Klickt man auf den Link, dann ändert ein JS die Größe von F1 auf 0, von F2 auf 100% (oder einfach Inhalt auslesen ginge auch). Geht das nicht (alter Browser oder kein JS), dann wird halt beim Link das Frameset verlassen und das (bereits im Cache vorhandene) Dokument von F2 geladen.
Gruß, Cybaer
Hi Rainer,
es reicht normalerweise, die Bildelemente der nächsten Seite vorzuladen. Das kannst Du am leichtesten, indem Du etwa 1-Pixel-groß die Bilder von Seite 2 am Ende der ersten Seite einbaust.
Viele Grüße
Mathias Bigge
Hallo!
es reicht normalerweise, die Bildelemente der nächsten Seite vorzuladen. Das kannst Du am leichtesten, indem Du etwa 1-Pixel-groß die Bilder von Seite 2 am Ende der ersten Seite einbaust.
Damit hast du mich gerade auf eine Idee gebracht.
Ich hab eine Fotogalerie. In der Einzelfotoansicht kann man sich von Foto zu Foto durchklicken.
Wenn ich jetzt ca folgenden Code einbaue, kann ich dann sicher davon aus gehen, dass das zweite Bild erst nach dem ersten geladen wird?
<img src="aktuellesBild">
<img style='width:1px; height: 1px;' src="dasnächstebild">
Ich geh mal davon aus, dass ein Browser multithreaded programmiert ist und die Resourcen parallel anfordert. Dh. dann aber, wenn ein User nur eine geringe Bandbreite hat, dann ist der Geschwindigkeitsvorteil ja wieder dahin, da ja beide Bilder gleichzeitig geladen werden. Also kann ich mir mit so einem "vorladen" des nächsten Bildes eigentlich gewaltig ins Knie schießen, oder? Rein theoretisch kann es dann passieren, dass das nächste Bild schneller geladen wird als das, das ich eigentlich anzeigen möchte.
mfg
frafu
Hello out there!
Dh. dann aber, wenn ein User nur eine geringe Bandbreite hat, dann ist der Geschwindigkeitsvorteil ja wieder dahin, da ja beide Bilder gleichzeitig geladen werden. Also kann ich mir mit so einem "vorladen" des nächsten Bildes eigentlich gewaltig ins Knie schießen, oder?
Ja, guter Einwand. Das Laden der ersten Seite dauert dadurch länger.
Bleibt also das gute alte Vorladen der Bilder mit JavaScript – aufgerufen mit onload, also nachdem auch alle Bilder der Seite, die der Benutzer erstmal zu sehen bekommt, bei ihm angekommen sind.
See ya up the road,
Gunnar
Hi Gunnar,
Bleibt also das gute alte Vorladen der Bilder mit JavaScript – aufgerufen mit onload, also nachdem auch alle Bilder der Seite, die der Benutzer erstmal zu sehen bekommt, bei ihm angekommen sind.
Ich habe dieses Verfahren bewusst nicht angegeben, weil ich davon ausgehe, dass ich gegenüber 1-Pixel-großen Bildern am Ende der Seite keinen Vorteil habe. Bei beiden Verfahren bleibt der kleine Nachteil, dass undurchsichtig weiter geladen wird, nachdem die Seite sichtbar wird, was Nutzer stören könnte. Sehe ich das falsch?
Viele Grüße
Mathias Bigge
Hello out there!
Bleibt also das gute alte Vorladen der Bilder mit JavaScript
Ich habe dieses Verfahren bewusst nicht angegeben, weil ich davon ausgehe, dass ich gegenüber 1-Pixel-großen Bildern am Ende der Seite keinen Vorteil habe.
Doch. Bei deiner Variante
<img src="aktuellesBild">
<img style='width:1px; height: 1px;' src="dasnächstebild">
werden – wie [FraFu] erwähnte – beide Bilder gleichzeitig* vom Client angefordert, obwohl "dasnächstebild" zur Anzeige der aktuellen Seite noch gar nicht benötigt wird. Das verzögert das Laden der für die aktuelle Seite benötigten Ressourcen ("aktuellesBild") und stört dadurch den Seitenaufbau.
Bei beiden Verfahren bleibt der kleine Nachteil, dass undurchsichtig weiter geladen wird, nachdem die Seite sichtbar wird, was Nutzer stören könnte. Sehe ich das falsch?
Das wiedrum siehst du richtig. ;-)
See ya up the road,
Gunnar
* fast jedenfalls
Hi Gunnar,
Doch. Bei deiner Variante
<img src="aktuellesBild">
<img style='width:1px; height: 1px;' src="dasnächstebild">
Das war nicht mein Vorschlag, ich würde das Bild einfach per HTML laden.
> > Bei beiden Verfahren bleibt der kleine Nachteil, dass undurchsichtig weiter geladen wird, nachdem die Seite sichtbar wird, was Nutzer stören könnte. Sehe ich das falsch?
> Das wiedrum siehst du richtig. ;-)
Viele Grüße
Mathias Bigge
--
<http://aktuell.de.selfhtml.org/tippstricks/index.htm>
Hello out there!
Doch. Bei deiner Variante
<img src="aktuellesBild">
<img style='width:1px; height: 1px;' src="dasnächstebild">
> Das war nicht mein Vorschlag, ich würde das Bild einfach per HTML laden.
Verstehe nicht, was du meinst.
See ya up the road,
Gunnar
--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
Hallo.
Bei beiden Verfahren bleibt der kleine Nachteil, dass undurchsichtig weiter geladen wird, nachdem die Seite sichtbar wird, was Nutzer stören könnte. Sehe ich das falsch?
Du beachtest vor allem nicht, dass die Reihenfolge der Bilder im Quelltext nicht der Reihenfolge des Abrufens oder Anzeigens der Ressource seitens desn Browsers entsprechen muss. Unter -- von dir nicht zu beeinflussenden -- Umständen wartet der Nutzer also zunächst auf ein Bild, das ihm gar nicht angezeigft wird, bevor sich das Bild aufbaut, auf das er eigentlich wartet.
MfG, at
Hi at,
Du beachtest vor allem nicht, dass die Reihenfolge der Bilder im Quelltext nicht der Reihenfolge des Abrufens oder Anzeigens der Ressource seitens desn Browsers entsprechen muss. Unter -- von dir nicht zu beeinflussenden -- Umständen wartet der Nutzer also zunächst auf ein Bild, das ihm gar nicht angezeigft wird, bevor sich das Bild aufbaut, auf das er eigentlich wartet.
Ja, das ist vielleicht richtig, aber ich habe den "Trick" des Vorausladens in Modemzeiten oft selber benutzt, meist schien es mir zu funktionieren, ich habe jetzt Ferien, da kann ich es einmal mit aktuellen Browsern ausprobieren. Vielleicht könnte einer der Kenner der Open-Source-Browser aber auch etwas Prinzipielles dazu sagen, in welcher Reihenfolge gerendert wird. Allerdings lagen bei meinen damaligen Versuchen die anzuzeigenden Bilder wohl immer innerhalb einer Layouttabelle und die vorauszuladenden außerhalb, was das Ladeverhalten vielleicht beeinflusst.
Viele Grüße
Mathias Bigge
Hallo.
Ich kenne dieses Verhalten besonders von Bildergalerien, und dort schien es mir die Reihenfolge wirklich willkürlich, zumal sie sich nach dem Leeren des Cache und anschließendem Neuladen änderte. Welche HTML-Konstrukte sich da wie ausgewirkt haben, hatte ich aber nicht getestet.
MfG, at