Ich interessiere mich für Chrome Memory Cache vs Disk Cache? Ich benutze Webpack, Common Chunks Plugin und generiere alle meine Dateien mit Chunkhash.
Wie unterscheidet sich der Speicher vom Festplatten-Cache? Wenn ich meine Seite neu lade, werden einige Dateien aus dem Speichercache und einige aus dem Festplattencache geladen (bundle.js und image.jpg aus dem Speichercache und css aus dem Festplattencache). Manchmal ist es anders. Können wir das kontrollieren und auswählen, was von wo geladen wird? Der Speichercache scheint schneller zu sein als der Festplattencache.
google-chrome
caching
webpack
Igor-Vuk
quelle
quelle
Antworten:
Wie ihre Namen sagten:
"Speicher-Cache" speichert und lädt Ressourcen in und aus dem Speicher (RAM). Das ist also viel schneller, aber nicht persistent. Der Inhalt ist verfügbar, bis Sie den Browser schließen.
"Disk Cache" ist persistent. Zwischengespeicherte Ressourcen werden gespeichert und auf und von der Festplatte geladen.
Einfacher Test: Öffnen Sie Chrome Developper Tools / Network. Laden Sie eine Seite mehrmals neu. Die Tabellenspalte "Größe" zeigt an, dass einige Dateien "aus dem Speichercache" geladen werden. Schließen Sie nun den Browser, öffnen Sie Developper Tools / Network erneut und laden Sie diese Seite erneut. Alle zwischengespeicherten Dateien werden jetzt "aus dem Festplatten-Cache" geladen, da Ihr Speicher-Cache leer ist.
quelle
Chrome implementiert Caches auf vielen Abstraktionsebenen. Im Kern befindet sich der HTTP-Cache (Browser) - ein Backend für andere Caching-Mechanismen. Im Allgemeinen können Caches unterteilt werden in:
HTTP-Cache
Jede Anforderung, die über das Netzwerk erfolgt, wird von einem HTTP-Cache weitergeleitet, der sich an RFC hält . Bei der ersten Anforderung wird der Cache überschrieben. Ressourcen werden durch die Ursprungs-URL verschlüsselt.
Service Worker Cache
Um Netzwerkverbindungsfehler ordnungsgemäß zu behandeln, können Sie Service Worker verwenden . Die Caches und der Cache-Speicher würden wieder von der Festplatte übernommen.
Blink-Cache
Blink verwendet den HTTP-Cache als Backend in zwei Erstellungsmodi - im Speicher und einfach (Dateisystem). Welches verwendet wird, hängt vom global festgelegten Limit für Caches ab, wie viel Speicher sie belegen können. Auch der aktuelle Renderer-Cache erhält den größten Anteil. Zwischengespeichert werden Schriftarten, Bilder und Skripte. Wenn die globale Speichernutzung einen bestimmten Schwellenwert erreicht, wird das Dateisystem-Backend verwendet.
Erzwingen im Speichercache
Wenn Sie möchten, dass Ihre Dateien aus dem Speicher bereitgestellt werden, der den Standardmechanismus überschreibt, können Sie Ihren eigenen Service Worker implementieren. Mit der Datei-API können Ressourcen gelesen und in einem Objekt im Speicher gespeichert werden. Das Überschreiben des Abrufereignisses würde dann das Lesen von Netzwerken und Dateien mit Inhalten unterdrücken, die von diesem globalen Objekt bereitgestellt werden.
quelle