2016-04-29 4 views
2

Ich machte eine Website mit angularJS. Aber ich habe ein Problem.AngularJS Website, Cache eine Versionsnummer

meine Benutzer bekommen viele Fehler verfluchen sie eine alte Cache-Version der Website,

Also, was ich tun möchte, ist irgendwie eine Versionsnummer für den Cache zu erstellen, so dass, wenn der Benutzer mit den Anrufen in Fehler, ich kann fragen, welche Version sie verwenden, um zu sehen, ob die zwischengespeicherte Website zu alt ist, und sie bitten, das zwischengespeicherte zu leeren.

Wer weiß, wie das geht? Ich suche nicht nach meinem Cache, sondern zeige nur eine Nummer an und zeige die zwischengespeicherte Version an.

Antwort

0

Sie können eine Variable, die auf der Konsole gedruckt wird, die die Site-Version darstellt, hinzufügen, die natürlich erst ab dem Zeitpunkt angezeigt wird, an dem Sie sie hinzufügen.

Allerdings sind alte zwischengespeicherte Versionen von Websites ein gelöstes Problem, das Ihre Benutzer überhaupt nicht erleben sollten. Es ist lösbar durch Hinzufügen eines Fingerabdrucks zu den js-Dateien, die Sie anfordern (Hinzufügen eines Suffix, das ist die Checksumme \ letzte Update-Zeit der Datei), und überhaupt keinen Cache auf der Haupt-HTML, die die js-Dateien erwähnt. Gleiches gilt für CSS oder andere Dateien, die sich wahrscheinlich von Version zu Version ändern.

Abhängig von Ihrem statischen Dateiserver gibt es Plugins und Module, die sich um dieses Problem kümmern können. Auf nginx, ist die beliebteste Page Speed: https://developers.google.com/speed/pagespeed/module/

Eine ausführlichere Beschreibung zu dem, was ich oben geschrieben hätte (und Page Speed ​​Geräte) kann bei „Annullierung eines und Aktualisieren von zwischengespeicherten Antworten“ auf diesem Handbuch zu finden: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#invalidating-and-updating-cached-responses

+0

Diese Fingerabdruck auf den JS-Dateien, können Sie ein Beispiel geben, wie es aussehen würde? und kann ich diesen "Fingerprint" als globale Variablen verwenden, so dass ich den Wert einfach um einen Platz ändern kann und ihn für alle js-Dateien ändern würde? – DaCh

+0

Wenn ich eine globale Variable verwenden kann, würde dies auch ermöglichen, eine Versionsnummer des Caches in einer der Ecken der Website anzuzeigen, – DaCh

+0

Okay. Also minimiere ich meine Skripte mit asp.net. Verwenden Sie dazu die "Fingerprint" -Lösung, ABER. es aktualisiert nicht den Client-Cache, selbst wenn der Fingerabdruck geändert wird, also zurück zu Stufe eins, Eine Möglichkeit, eine Versionsnummer des Cache anzuzeigen – DaCh

Verwandte Themen