Hallo Mathias!
Gibt es dafür eine "elegante" Lösung
Nicht dass ich wüsste. Gedanklich habe ich einige durchgespielt, aber elegant waren die nicht. ;) Oder sie sind Caching-Lösungen zusätzlich zum Manifest, über die man mit JavaScript bessere Kontrolle hat.
Das hatte ich befürchtet ...!
Ich sehe Manifest-Caching auch eher in dem Anwendungsbereich, wo ich nicht viele Assets cache, sondern nur die nötigen. Wenn du zahlreiche Fontdateien hast, würde ich anfangen da zu optimieren. Im Zweifelsfall auf eigene Fonts verzichten.
Nur sehr ungern ... ;-)
Siehe auch
http://alistapart.com/article/application-cache-is-a-douchebag#section13
http://stackoverflow.com/questions/17664717/most-efficient-webfont-configuration-with-html5-appcache
Danke - kenne ich schon ...
Dass die Application-Cache-Spezifikation schrecklich ist, ist bekannt, leider gibt es noch keine wirkliche Alternative.
Auch auf die Gefahr hin, dass ich mich wiederhole, aber ...
Das eigentliche Problem besteht (mal wieder) darin, dass man serverseitig nicht die nötigen Infos hat, um bspw. das Manifest entsprechend on-the-fly zusammenzustellen.
Ein entsprechender Header wie z.B. der Accept-Language Header für die Fonts würde ja Abhilfe schaffen. Genauso bei etlichen anderen "Problemen" wie bspw. bei den Images.
Soweit ich das richtig verstanden habe, lädt der Browser "alle" Resourcen einer Seite aus dem Application Cache, sofern einer für die entsprechende Seite vorhanden/ angegeben ist.
Wie sieht das denn dann aus, wenn man im Manifest in der Network Sektion einen '*' einträgt, was dem Browser ja erlaubt, alle fehlenden Resourcen über das Netz nachzuladen. Holt er dann diese Resourcen nicht ggf. aus seinem "normalen" Cache?
Im Moment erscheint mir eine Variante, die Local Storage verwendet da fast besser geeignet zu sein, als der Apllication Cache. Denn dieser besitzt imho zu viele Nachteile, bzw. Unzulänglichkeiten.
Gruß Gunther