it-swarm.com.de

Google Chrome muss bei jedem Zugriff auf eine Website nach neuen JavaScript-Dateien suchen

Wenn ich in Internet Explorer zu den Internetoptionen gehe: enter image description here

Ich kann die Einstellungen anpassen, wenn IE nach Updates sucht: enter image description here

Kann ich in Google Chrome etwas Ähnliches tun? Wenn ich momentan meine JavaScript-Datei ändere und in Visual Studio debugge, verwendet Chrome immer die zwischengespeicherte Version, anstatt die geänderte Version zu verwenden. Um die aktuelle Version nutzen zu können, muss ich meine temporären Internetdateien/den Cache manuell löschen, was sehr ärgerlich ist.

25
EJoshuaS

Option 1: Cache vorübergehend deaktivieren

  1. Öffnen Sie die Entwicklertools (Drücken Sie F12 oder Menü, Weitere Tools, Entwicklertools)
  2. Öffnen Sie die Developer Tools - Einstellungen (Drücken Sie F1 oder DevTools Menü, Einstellungen)
  3. Aktivieren Sie "Cache deaktivieren (während DevTools geöffnet ist)" im Bereich "Einstellungen" unter "Netzwerk"

Option 2: Cache für Sitzung deaktivieren

Starten Sie Chrome mit den Befehlszeilenschaltern --disk-cache-size=1 --media-cache-size=1, mit denen die Caches auf 1 Byte begrenzt werden, wodurch der Cache effektiv deaktiviert wird.

Option 3: Manuelle Aktualisierung erzwingen

Lädt die aktuelle Seite neu und ignoriert den zwischengespeicherten Inhalt: Shift+F5 oder Ctrl+Shift+r

Chrome-Tastenkürzel - Chrome-Hilfe (Unter "Webseiten-Tastenkürzel")

Option 4: Zusätzliche Nachladeoptionen ( Quelle )

Klicken Sie bei geöffneten Entwicklertools mit der rechten Maustaste auf die Schaltfläche "Neu laden", um ein Neu laden-Menü mit folgenden Optionen anzuzeigen:

  • Normales Nachladen (Strg + R)
  • Festes Nachladen (Strg + Umschalt + R)
  • Cache leeren und neu laden
54
Steven

Es kann sein, dass es nicht zu 100% mit der Chromauffrischung zusammenhängt, sondern für die weitere Entwicklung. Wie @Dom sagte, können Sie nach Ihrer Ressource ein? V = # hinzufügen. Eine Möglichkeit, den Prozess zu automatisieren, besteht darin, den Inhalt der Datei zu hashen und diesen als Version zu verwenden.

Ich habe einen Snippet-Code dazu in C # (Razor für die Implementierung), wenn dies helfen kann.

Helfer:

public static string HashUrl(string relativeUrl)
    {
        var server = HttpContext.Current.Server;
        if (File.Exists(server.MapPath(relativeUrl)))
        {
            byte[] hashData;
            using (var md5 = MD5.Create())
            using (var stream = File.OpenRead(server.MapPath(relativeUrl)))
                hashData = md5.ComputeHash(stream);

            return relativeUrl.Replace("~", "") + "?v=" + BitConverter.ToString(hashData).Replace("-", "");
        }
        return relativeUrl + "?v=notFound";
    }

Implementierung:

<link rel="stylesheet" [email protected]("~/Controllers/Home/Views/Index.css") />

Hoffe das hilft

BEARBEITEN --- Einige haben nach einer Build-Laufzeit gefragt und für 1000 kleine Ressourcen dauert es ungefähr 11 ms.

https://en.code-bude.net/2013/08/07/md5-hashes-in-c-benchmark-and-speed-%E2%80%8B%E2%80% 8Boptimierung/

enter image description herehttps://en.code-bude.net/wp-content/uploads/2013/08/md5_performance_benchmark_2.png

8
fred beauchamp

In anderen Fällen, in denen dies möglicherweise nicht möglich ist, z. B. wenn Sie eine Aktualisierung auf dem Computer eines Endbenutzers erzwingen möchten, auf den Sie keinen Zugriff haben, können Sie eine Versionsnummer an das Skript anhängen Name als Abfrageparameter, der vom Browser als eine andere Datei identifiziert wird . dh example.js?v=1. Denken Sie daran, dass Sie die Nummer bei jedem Neuladen ändern müssen, um es zu erzwingen.

Sie könnten dies auch mit lokaler Entwicklung tun, aber die Dev-Tools-Methode ist viel effizienter.

5
Dom

wenn Sie zusätzlich zu @Steven answer die Developer Tools Console öffnen, können Sie mit der rechten Maustaste auf die Schaltfläche Aktualisieren und verwenden Sie das Dropdown-Menü.

In diesem Menü erhalten Sie eine Option für "Cache leeren und neu laden" .

Ist das, wonach Sie suchen.

3
Leze

Wenn Sie die Site entwickeln, sollten Sie wissen, dass Chrome die Einstellung must-revalidate in Cache-Control benötigt, um Dateien ordnungsgemäß erneut abzurufen, wenn sie auf dem Server geändert werden.

In den anderen Antworten erfahren Sie, wie Sie mit UMSCHALT + F5 Ihre eigene Chrome-Version zwingen, alle Dateien erneut abzurufen. Aber ist es sinnvoll, alle Benutzer der Site dazu aufzufordern, jedes Mal, wenn sich die Site ändert? Wenn Sie Cache-Control so einstellen, dass must-revalidate enthalten ist, überprüft Chrome, ob Dateien geändert wurden, und lädt sie bei Bedarf ordnungsgemäß herunter.

Details finden Sie in diesem Blog-Beitrag: https://agiletribe.wordpress.com/2018/01/29/caching-for-chrome/

1
AgilePro