Erzwingen des Cache-Ablaufs aus einer JavaScript-Datei

8

Ich habe eine alte Version einer JS-Datei in den Browsern der Benutzer zwischengespeichert, mit einem Ablaufdatum von 10 Jahren (seither habe ich gelernt, Ablaufverzeichnisse korrekt auf meinem Webserver zu setzen). Ich habe die JS-Datei aktualisiert und möchte, dass meine Benutzer davon profitieren.

  • Gibt es irgendeine Möglichkeit, dass mein Webserver die Browser der Benutzer zwingen kann, den Cache für diese eine Datei zu löschen, ohne eine anders benannte JS-Datei zu liefern?
  • Werden in der Zukunft, wenn verfallene Header nicht korrekt gesetzt sind (Paranoia), meine JS-Datei automatisch ablaufen und ein Reload erzwingen, nachdem beispielsweise ein Tag vergangen ist, seit es zwischengespeichert wurde?

EDIT: Idealerweise möchte ich dieses Problem lösen ohne HTML-Markup auf der Seite zu ändern, die das Skript hostet.

    
Bilal and Olga 23.02.2010, 17:57
quelle

4 Antworten

18

Kurz gesagt ... nein.

Sie können etwas am Ende der Quelladresse des Skript-Tags hinzufügen. Browser behandeln dies als eine andere Datei als die, die sie gerade zwischengespeichert haben.

%Vor%

Nicht sicher über Ihre anderen Optionen.

    
Matt 23.02.2010, 18:01
quelle
5

In HTML5 können Sie den Anwendungscache verwenden, mit dem Sie steuern können, wann der Cache abläuft

Sie müssen den Pfad zum Manifest hinzufügen

<!DOCTYPE HTML><html manifest="demo.appcache">

In Ihrer Datei demo.appcache können Sie einfach jede Datei, die Sie zwischenspeichern möchten,

platzieren %Vor%

Wenn der Browser eine neue Datei herunterladen soll, können Sie das Manifest

aktualisieren %Vor%

Achten Sie darauf, das Cache-Manifest mit dem Veröffentlichungsdatum oder der Version (oder etwas anderem) zu ändern, wenn der Browser sieht, dass das Manifest geändert wurde und alle Dateien darin heruntergeladen werden.

Wenn das Manifest nicht geändert wird, aktualisiert der Browser die lokale Datei nicht, selbst wenn diese Datei auf dem Server geändert wurde.

Weitere Informationen finden Sie im HTML5-Anwendungscache

    
meltix 13.03.2013 19:12
quelle
1

Sie könnten Ihren URLs einen Dummy-Parameter hinzufügen

%Vor%

[e: f; b]

Das Hauptproblem ist, dass wenn Sie den Ablauf mit einem einfachen "Expires" -Header einrichten, dann werden die Browser, die die Datei im Cache haben, nicht einmal die Mühe machen, Sie zu kontaktieren. Selbst wenn es einen Weg für das Skript gäbe, den Browser in den Kopf zu schlagen und den Cache zu löschen, macht dein altes Skript das nicht , also hast du keine Möglichkeit, diese Funktionalität den Clients zu übergeben .

    
Pointy 23.02.2010 18:01
quelle
0

Sie können das erneute Laden eines zwischengespeicherten Dokuments mit javascript:

erzwingen %Vor%

Der wahre Befehl zeigt an, dass der Browser die Seite ohne Cache neu laden muss.

    
nombrote 12.01.2017 08:14
quelle

Tags und Links