Ladeseite
Luzi
- javascript
0 molily
0 Cyx230 Thorsten Schleppi
Hey zusammen.
Ich habe ein kleines oder grösseres Problem: Ich habe ein relativ grosse Seite. Sagen wir der einmal A. Beim Laden erscheint jetzt lange Zeit nichts. Jetzt möchte ich darum eine Ladeseite generieren. Sagen wir der B. Ich weiss, dass man im Header von Seite B definieren kann, dass nach einer gewissen Zeit Seite A geöffnet wird. Dann muss aber Seite A immer noch gleich lange laden wie ohne Seite B. Darum meine Frage:
Gibt es eine Seite (A), die während ihrer Laufzeit eine andere Seite (B) im voraus lädt aber noch nicht anzeigt. Beim Fertigstellen des Ladens würde dann sofort zur Seite B gewechselt werden und müsste dann nicht mehr geladen werden.
Ich wäre euch allen dankbar um eine Antwort.
Gibt es eine Seite (A), die während ihrer Laufzeit eine andere Seite (B) im voraus lädt aber noch nicht anzeigt. Beim Fertigstellen des Ladens würde dann sofort zur Seite B gewechselt werden und müsste dann nicht mehr geladen werden.
Prinzipiell könnte man das mit zwei Seiten tun und mit JavaScript Seite B in den Cache laden. Zum Beispiel mit einem unsichtbaren iframe, dessen load-Event man abwartet und dann mit location.href die Seiten auswechselt. Schematisch:
<iframe style="display:none" src="URIvomSeiteB" onload="window.location.href = this.src;"></iframe>
Allerdings findet hier durch die location.href-Zuweisung ein Wechsel statt, bei dem Seite B unter Umständen noch einmal geladen wird bzw. der Browser einen Conditional-GET sendet, also kurz prüft, ob sich die Seite auf dem Server schon geändert wurde oder die zwischengespeicherte Version noch aktuell ist. Damit werden allerdings z.B. PHP-Scripte wieder von neuem angestoßen.
Solche Vorschalt-Ladeseiten haben verschiedene Nachteile. Besser beschreibst du mal, warum du diesen Effekt haben willst, wie die Seite B aufgebaut ist und warum beim Laden lange Zeit nichts erscheint. Läuft da ein serverseitiges Script sehr lange?
Der Benutzer sieht lieber eine schrittweise aufbauende Site, auf der er sich schon orientieren kann, anstatt eine weiße Seite, die dann schlagartig durch eine fertig geladene ersetzt wird. Daher löst man solche Fragen wenn überhaupt in einem Dokument. Das enthält einen Ladehinweis, der beim load-Event ausgeblendet wird:
<script type="text/javascript">
document.write('<p id="ladehinweis">Seite wird geladen. Bitte warten.</p>');
</script>
...Rest der Site...
Das Element kannst du natürlich mit CSS formatieren.
Im einem Script im head:
window.onload = function () {
// Seite ist fertig geladen, Ladehinweis ausblenden
document.getElementById("ladehinweis").style.display = "none";
};
Ob das jetzt auf deine Situation passt, weiß ich nicht, dazu müsstest du diese genauer schildern.
Mathias
Hallo,
Ich habe ein kleines oder grösseres Problem: Ich habe ein relativ grosse Seite. Sagen wir der einmal A. Beim Laden erscheint jetzt lange Zeit nichts.
Gibt es so etwas bei modernen PCs und DSL-Verbindungen wirklich noch so deutlich, ausser wenn der Server überlastet ist?
Geht es um Text oder sind es andere Inhalte?
Grundsätzlich scheint es mir nicht richtig, Datenmenge usw. durch ein Vorladen noch zu erhöhen; für Textinhalte gibt es ausserdem serverseitige Kompressionsmöglichkeiten.
Grüsse
Cyx23
Hallo!
Ich wäre euch allen dankbar um eine Antwort.
Vielleicht hilft dir die PHP-Funktion "flush()" weiter.
Etwas mit JavaScript zu basteln, halte ich für wenig sinnvoll.
(Ja, JavaScript kann man ausschalten...)
Viele Grüße
Thorsten