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
Im Allgemeinen gibt es drei Arten von Dateien -
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 -
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.
Tags und Links gwt caching browser-cache