Interesuje mnie Chrome Memory Cache vs Disk Cache? Używam webpacka, popularnej wtyczki chunks i generuję wszystkie moje pliki za pomocą chunkhash.
Czym różni się pamięć od podręcznej pamięci dyskowej. Kiedy przeładowuję stronę, niektóre pliki są ładowane z pamięci podręcznej, a niektóre z pamięci podręcznej dysku (bundle.js i image.jpg z pamięci podręcznej i css z pamięci podręcznej dysku). Czasami jest inaczej. Czy możemy to kontrolować, wybrać, co jest ładowane skąd? Pamięć podręczna wydaje się być szybsza niż pamięć podręczna dysku.
google-chrome
caching
webpack
Igor-Vuk
źródło
źródło
Odpowiedzi:
Jak powiedziały ich imiona:
„Pamięć podręczna” przechowuje i ładuje zasoby do iz pamięci (RAM). Jest to więc znacznie szybsze, ale nie jest trwałe. Treść jest dostępna do momentu zamknięcia przeglądarki.
„Pamięć podręczna dysku” jest trwała. Zasoby w pamięci podręcznej są przechowywane i ładowane na dysk iz dysku.
Prosty test: otwórz narzędzia / sieć programistów Chrome. Załaduj ponownie stronę wiele razy. Kolumna tabeli „Rozmiar” informuje, że niektóre pliki są ładowane „z pamięci podręcznej”. Teraz zamknij przeglądarkę, ponownie otwórz Narzędzia programistyczne / Sieć i ponownie załaduj tę stronę. Wszystkie pliki w pamięci podręcznej są teraz ładowane „z pamięci podręcznej dysku”, ponieważ pamięć podręczna jest pusta.
źródło
Chrome implementuje pamięci podręczne na wielu poziomach abstrakcji. U podstaw znajduje się pamięć podręczna HTTP (przeglądarki) - zaplecze dla innych mechanizmów buforowania. Ogólnie cache można podzielić na:
Pamięć podręczna HTTP
Każde żądanie przesyłane przez sieć jest przekazywane przez pamięć podręczną HTTP zgodną z RFC . Przy pierwszym żądaniu pamięć podręczna jest nadpisywana. Zasoby są kluczowane przez pierwotny adres URL.
Service Worker Cache
Aby z wdziękiem radzić sobie z awariami połączeń sieciowych, możesz użyć Service Workers . Pamięci podręczne i pamięć podręczna zostaną ponownie zabrane z dysku.
Blink Cache
Blink używa Http Cache jako zaplecza w dwóch trybach tworzenia - w pamięci i prostym (system plików). To, który z nich jest używany, zależy od limitu ustawionego globalnie dla pamięci podręcznych, ile pamięci mogą one zająć. Największy udział ma również bieżąca pamięć podręczna modułu renderującego. To, co jest buforowane, to czcionki, obrazy i skrypty. Jeśli globalne użycie pamięci osiągnie określony próg, używany jest backend systemu plików.
Wymuszanie w pamięci podręcznej
Jeśli chcesz, aby Twoje pliki były obsługiwane z domyślnego mechanizmu zastępującego pamięć, możesz zaimplementować własny Service Worker. Korzystając z File Api, zasoby mogą być odczytywane i zapisywane w obiekcie w pamięci. Wówczas przesłanianie zdarzenia pobierania wstrzymałoby odczyty sieci i plików z zawartością dostarczaną z tego obiektu globalnego.
źródło