Richard: Progress Loading Line

Beitrag lesen

meine Frage zielt aber auf etwas anderes: Kan man im Bereich einer Webseite überhaupt sinnige Progress Loading Lines einsetzen? Mir fällt hier derzeit nur ein, eine Webseite vorzuschalten, die eine wie immer geartete Progress Loading Line anzeigt und den Rest währenddes per Ajax nachzuladen.

Ich denke da musst du konkreter werden. Wovon willst du den Ladefortschritt anzeigen? Für eine einzelne Ressourcen deren Größe bekannt ist, ist das einfach. Für viele Ressourcen unbekannter Anzahl, unbekannter Größe -- oder gar eine ganze Website -- lässt sich kein genauer Fortschritt berechnen. Da bleibt nur eine gleichbleibende Anzeige "wird geladen" als Text, Bild, Animation, ohne Prozentangabe oder Zeitangabe.

Was ich aber richtig klasse fände, wäre, wenn es eine Technik gäbe (oder man diese imitieren könnte), die erkennt, dass eine Webseite länger benötigt und dann (also bedarfsgerecht) eine "Wartegrafik" einblendet. Nur, wie soll das gehen?

Meiner Meinung nach ist das nicht nötig. Webseiten können so aufgebaut werden dass der Ladefortschritt für den Benutzer ersichtlich ist. HTML und Co. sind darauf ausgelegt:

  • HTML wird "progressiv" geladen, verarbeitet und dargestellt. Ein Benutzer sieht, was vonn der Seite schon da ist. Der Browser zeigt ein selbst eine Lade-Animation an.
  • Das Laden von CSS "blockt" meist die Darstellung. Zumindest für eine bestimmte Zeit. Daher sollte das anfänglich geladene CSS klein sein und schnell über die Leitung flitzen.
  • Bilder können auch problemlos nach einander laden. Wenn sie noch nicht geladen sind sieht man eben einen Freiraum oder einen Teil von "progressive" JPG / "interlaced" PNG.
  • Ausführung von Javascript "blockt" meistens alles. Deshalb sollte Javascript nicht blockierend eingebunden werden.
  1. Wie sol eine erkennung funktionieren?

Dazu müsste man erst einmal den Zeitpunkt "die Seite ist geladen" feststellen können. Da gibt es das gute alte window.onload aber noch vieles mehr:

https://developer.mozilla.org/en/docs/Web/API/Navigation_timing_API

  1. Wer soll die Grafik ausliefern? Entweder liefert der Server die Daten (dann brauchts keine Grafik mehr) oder er liefert nichts (also auch keine Grafik)

Erkläre einmal bitte welche Fehlerfälle du behandeln willst. Wenn der Server mitten im Laden plötzlich abschmiert (selten) oder die Internetverbindung weg bricht (häufig), so kann das eine Webseite nur schwer erkennen.

Bei XMLHttpRequest bekommst du in der Tat die genauesten Fehlermeldungen: Serverfehler, Timeout, Internet weg usw. Nur ist es nicht praktikabel alle Ressourcen einer Seite einzeln mit XMLHttpRequest zu laden. ;-)

Richard