Gibt es einen Grund, den lokalen HTML5-Speicher nicht für Inhalte zu verwenden?

9

Auf vielen statischen Websites würde die Gesamtgröße des tatsächlichen Textinhalts der beliebtesten 20 Seiten unter 100 KB liegen.

Ich würde mir vorstellen, dass es möglich wäre, den lokalen HTML5-Speicher zu nutzen, um Inhalte über AJAX vom Server in einer einzigen Datei herunterzuladen, im lokalen Speicher zu speichern und mit einem datengesteuerten JS-Framework wie angleJS zu verwenden. Tatsächlich könnten Sie stillschweigend noch mehr Inhalte im Hintergrund herunterladen. Dies könnte möglicherweise zu einer sehr schnellen und reaktionsschnellen Benutzererfahrung führen.

Trotzdem habe ich keine Websites gesehen, die auf diese Weise funktionieren. Gibt es einen Grund, den ich vermisse, der dies zu einer schlechten Idee machen würde?

Matthew Dolman
quelle
1
Vergessen Sie nicht, SEO zum Laufen zu bringen. Und müssen Sie das Browser-Caching wirklich neu erfinden?
jfriend00
Sie vergessen, dass ein Großteil davon vom Browser für Sie erledigt wird. Ein guter Grund, dies nicht zu tun, wäre: Was wäre, wenn Sie eine solche Ressource aktualisieren müssten?
Neil
Es ist eine schlechte Idee, da es viel einfacher ist, die richtigen Fang-Header für Ihre GET-Anforderungen bereitzustellen und die Browser das schwere Heben übernehmen zu lassen.
Esben Skov Pedersen
@ jfriend00, ja ich habe mich auch über SEO gewundert. Ich glaube, dass Googles Crawler einige grundlegende Javascript-Funktionen verarbeiten kann, aber dies würde wahrscheinlich den Rahmen ihrer Crawler sprengen.
Matthew Dolman
@Neil, ich nehme an, dass Sie abhängig von der Ressource Ablaufzeitlimits haben könnten. Wie ich in dem Beitrag erwähnt habe, habe ich mehr über statische Sites nachgedacht, die keine kurzen Aktualisierungen erfahren würden
Matthew Dolman

Antworten:

6

Ich denke, die kurze Antwort auf Ihre Frage ist, dass der Grund dafür, dass nicht viel passiert, wie Sie es beschreiben, darin besteht, dass der lokale HTML5-Speicher in keiner Weise der Aufgabe gewachsen ist und wir bis in die letzten zwei Jahre oder so nichts hatten angegeben werden, die eine bessere Lösung bieten würde.

Über den lokalen HTML5-Speicher speziell: Es gibt eine Race-Bedingung und einige andere Probleme, die verhindern, dass er für die Verwendung in der Produktion für Anwendungen geeignet ist, bei denen sichergestellt werden soll, dass keine Daten beschädigt werden, und bei denen mehr als nur Zeichenfolgen gespeichert werden sollen .

Diese Probleme im lokalen Speicher könnten möglicherweise behoben werden, aber die Realität ist, dass keiner der Browser-Engine-Anbieter derzeit Interesse daran hat, weitere Ressourcen in ihre lokalen Speicherimplementierungen zu stecken. Sie alle möchten lieber, dass Webentwickler Alternativen zum lokalen Speicher verwenden.

Wie auch immer, für den von Ihnen beschriebenen Anwendungsfall sind glücklicherweise tatsächlich robustere Lösungen in Arbeit. Das Schlüsselelement für die Zukunft wird Service Worker sein - und im Kontext dieser Frage speziell die Schnittstellen Service Worker Cache und CacheStorage .

Auch IndexedDB ist die Produktion-grade Lösung , dass die Web - Laufzeit hat jetzt für den allgemeinen Fall von robuster Speicherung von Daten auf dem Client, mit effizienten Implementierungen und mit mehr funktions gefüllt Kontrolle über die Art der gespeicherten Daten und wie sie gespeichert wird .

Sideshowbarker
quelle
"local storage is in no way up to the task"- JA, es ist bereit für die Aufgabe. Sie können dort jede Antwort vom Server ausgeben, und für einfache Anwendungen werden Sie das 5MBLimit nicht überschreiten. Es war nicht dafür gedacht, kann aber dennoch sehr erfolgreich zum Zwischenspeichern von Serverantworten verwendet werden.
vsync