Aloha ;)
Ich glaube da liegt noch ein Grundsatz-Verständnisproblem vor.
Es ging in diesem Zweig hier nicht mehr darum, ein externes Stylesheet zu laden, sondern es ging darum, dass das Stylesheet ins HTML-File geschrieben wird und bei Bedarf (wenn der User es schon einmal geladen hatte und im Local Storage vorhält, weil ein Skript es da reingeschrieben hat) bei der Erzeugung des Dokuments durch den Webserver weggelassen wird.
Wie das in der Praxis dann aussieht, ist mir trotzdem noch schleierhaft. Wenn ich z. B. ein generelles Stylesheet (das für alle Dokumente der Site gelten soll) im Local Storage halten will, wie würde das aussehen müssen, damit man auch einen Fallback hat?
Fallback ist hier der Standardfall - wenn der User das nicht im Local Storage hat ist das Cookie nicht gesetzt, also liefert der Server das Stylesheet im HTML mit aus.
Nach dem Ausliefern greift ein ebenso vorhandenes Skript, das das CSS in den Local Storage schreibt und das Cookie setzt, sofern das erlaubt ist. User ohne Cookies laden eben jedesmal das HTML mit Stylesheet, das ist der größte flaw gegenüber echtem Caching, das ja auch ohne Cookies und nur mit normalen HTTP-Headern funktioniert.
Und was ein Cookie hier zu suchen hat, hast Du leider auch nicht näher ausgeführt. Soll da ggf. auch ein Stylesheet reinpassen?
Nein, das Cookie zeigt dem Webserver schon beim Request an, ob die Ressource im Local Storage vorhanden ist, weil sich der Local Storage selbst ja durch den Webserver nicht abfragen lässt.
Generell frage ich mich immer noch, wie ich den Fallback (Das Laden des Stylesheets vom Server) verhindern soll für den Fall, dass das Local-Storage das Erwünschte enthält.
Weil dein Skript in dem Moment, in dem es das gewünschte gespeichert hat, ein entsprechendes Cookie gesetzt hat, das der Server zur Zeit des Requets dann mitbekommt.
Und wie erkenne ich, dass das Gespeicherte wirklich das Erwünschte ist?
Zum Beispiel, indem du eine Checksumme (bspw. einen md5-Hash) deines gespeicherten Stylesheets als Wert des Cookie setzt - der Server kann das dann gegen seine Ressource prüfen und falls die Checksummen sich unterscheiden neu ausliefern.
Grüße,
RIDER
--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
#
Twitter #
Steam #
YouTube #
Self-Wiki #
Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[