Fokuhila: PreLoad Image ... aber für wen ?

Beitrag lesen

Hallo.

Auf www.djholly.de wird ein Preload-Script eingesetzt. Hab´s mir mal angeschaut. Macht auch nichts anderes als die Menügrafiken über neue Image-Objekte in den Cache zu bringen.
Aber scheinbar funktioniert es, sonst wäre es nicht da.

Vermutung (Wissen ist besser als vermuten, ich hoffe jedoch zumindest meine Gedankengänge äußern zu dürfen):

Das GEfühl kenne ich :-D

Außerdem beginnt jede wissenschaftliche Theorie (oder zumindest deren Erstellung) mit einer Hypothese. Deine Vorgehensweise ist also gar nicht so unwissenschaftlich.

  • Du, Red Zack, hast die Meta-Angabe "expires" auf 0, bzw. die pragma-Angabe gesetzt. Dann sollte auch das schönste Preloaden nicht helfen.

Vielleicht hat der Server unaufgefordert den HTTP-Header "expires: 0" gesetzt. Ggf. kann Red Zack gar nichts dafür. 2. Wenn er im HTML dem Header auf einen großen Wert (3600) setzt, stellt sich die Frage, ob der "echte" Header, der also im Protokoll steht, vor der "http-equiv"-Angabe Vorrang hat, oder andersherum. Vermutlich wird das je nach Browser anders sein. 3. Bleibt noch die Frage: Was machen die verschiedenen Browser, wenn kein 'expires:' angegeben ist? Sicher verhalten sie sich auch hie runterschiedlcih.

  • Wenn man den Browser in den Offline-Modus schaltet und eine kurz zuvor aufgerufene Seite erneut besucht ist sie sofort da. Tut man dies online so dauert es viel länger bis sie sich aufgebaut hat. Möglich ist, daß für jedes Element (Html, Bild,...) eine Anfrage an den Server geschickt wird, ob die Serverdaten neuer sind als die Ablage im Cache. Und das dauert bei schlechter Verbindung.

Das wäre eine HEAD-Anfrage. In diesem Fall sind http-equiv-Angaben völlig unbedeutend.

Früher las man gerne, man solle den Cache leeren um immer die neueste Version einer Seite zu sehen. Ich habe das noch nie gebraucht (mit IE 5.01), *vermute* also, daß neuere Browser das Problem wie oben beschrieben umgehen.

Sie können das Problem noch intelligenter umgehen, wenn sie nur für abgelaufene Seiten eine HEAD-Anfrage stellen. Andererseits könnten dann zwei Requests erforderlich sein; 1. HEAD und 2. GET. Das führt zu Zeitverlust.

Immerhin ein denkenswerter Ansatz, wenn mir die Profis auch sicher gleich heftig widersprechen werden. Aber dafür ist ein Forum ja da, solange es im manierlichen Rahmen bleibt.

Amen.
Fokuhila