GWT Caching Konzept

7

Kann mir jemand in einfachen Worten das Konzept des Caching in GWT erklären? Ich habe das an vielen Stellen gelesen, aber aufgrund meines begrenzten Wissens kann ich es nicht verstehen.

Wie nocache.js, cache.js

oder andere Dinge, wie zum Beispiel, dass der Client Dateien für immer zwischenspeichern kann oder wie Dateien vom Client zwischengespeichert werden und wenn dann die Datei nur auf dem Server geändert wird, dann lädt der Client diese Dateien erneut herunter

    
Noor 28.02.2011, 06:07
quelle

2 Antworten

19

Im Allgemeinen gibt es drei Arten von Dateien -

  1. Cache für immer
  2. Cache für einige Zeit
  3. Nie zwischenspeichern

Einige Dateien können niemals zwischengespeichert werden und fallen immer in den Bucket "niemals zwischenspeichern". Die größten Leistungsgewinne kommen jedoch von der systematischen Konvertierung von Dateien im zweiten Bucket in Dateien, die für immer zwischengespeichert werden können. GWT macht es einfach, dies auf verschiedene Arten zu tun.

Die <md5>.cache.js -Dateien können für immer gespeichert werden. Wenn sie sich jemals ändern, wird GWT die Datei umbenennen und der Browser wird gezwungen sein, sie erneut herunterzuladen.

Die Datei .nocache.js sollte niemals zwischengespeichert werden. Diese Datei wird auch dann geändert, wenn Sie eine einzelne Codezeile ändern und neu kompilieren. Die Datei nocache.js enthält die Links von <md5>.cache.js . Daher ist es wichtig, dass der Browser immer die neueste Version dieser Datei hat.

Der dritte Bucket enthält Bilder, CSS und andere statische Ressourcen, die Teil Ihrer Anwendung sind. CSS-Dateien ändern sich ständig, so dass Sie den Cache des Browsers nicht für immer unterscheiden können. Wenn Sie jedoch ClientBundle / CssResource verwenden, verwaltet GWT die Datei für Sie. Jedes Mal, wenn Sie das CSS ändern, wird GWT die Datei umbenennen und der Browser wird gezwungen sein, sie erneut herunterzuladen. Dadurch können Sie starke Cache-Header festlegen, um die beste Leistung zu erzielen.

Zusammenfassend -

  1. Setzen Sie für alles, was .cache. entspricht, einen expires-Header ab, der den Browser für immer speichert.
  2. Setzen Sie für alles, was .nocache. entspricht, Cache-Header ein, die den Browser zwingen, die Ressource erneut mit dem Server zu validieren.
  3. Für alles andere sollten Sie einen kurzen Verfalls-Header festlegen, abhängig davon, wie oft Sie Ressourcen ändern.
  4. Versuchen Sie ClientBundle / CssResource zu verwenden; Dies benennt Ihre Ressourcen automatisch in * .cache-Bucket
  5. um
Sripathi Krishnan 28.02.2011 08:56
quelle
2

Dieser Blogbeitrag bietet einen guten Überblick über den GWT-Bootstrapping-Prozess (und viele andere Teile des GWT-Systems, übrigens), was viel damit zu tun hat, was zwischengespeichert wird und warum.

Grundsätzlich ist die generierte Datei nocache.js ein relativ kleines Bit von JS, dessen einziger Zweck es ist, zu entscheiden, welche generierte Permutation heruntergeladen werden soll.

Jede einzelne Permutation besteht aus der Implementierung Ihrer App, die spezifisch für den Browser, die Sprache usw. des Benutzers ist. Dies ist viel mehr Code als der einfache Bootstrapping-Code und muss daher zwischengespeichert werden, damit Ihre App schnell reagieren kann. Dies sind die cache.html-Dateien, die vom GWT-Compiler generiert werden.

Wenn Sie Ihre App neu kompilieren und bereitstellen, laden Ihre Benutzer die Datei nocache.js wie gewohnt herunter, aber dies weist ihre Browser an, eine neue cache.html-Datei mit den neuen Funktionen der App herunterzuladen. Dies wird nun auch für das nächste Mal, wenn sie Ihre App laden, zwischengespeichert.

    
Jason Hall 28.02.2011 06:32
quelle

Tags und Links