2016-02-19 12 views
20

Według this API doc, który jest jedynym źródłem Znalazłem który opisuje w pamięci cache:Czy ktoś może wyjaśnić pamięć podręczną w pamięci podręcznej Google Chrome?

Chrome wykorzystuje dwa bufory - pamięci podręcznej na dysku, i bardzo szybko w pamięci podręcznej . Czas życia pamięci podręcznej w pamięci jest dołączony do cyklu życia procesu renderowania, który w przybliżeniu odpowiada karcie. Żądania, aby zostały odebrane z pamięci podręcznej w pamięci, są niewidoczne dla żądania internetowego API. Jeśli procedura obsługi żądań zmieni swoje zachowanie (na przykład zachowanie , zgodnie z którym żądania są blokowane), odświeżanie prostej strony może nie respektować tego zmienionego zachowania. Aby upewnić się, że zmiana zachowania zostanie zmieniona na , należy wywołać procedurę obsługiBehaviorChanged(), aby opróżnić pamięć podręczną w pamięci. Ale nie rób tego często; Opróżnianie pamięci podręcznej jest bardzo kosztowną operacją. Nie musisz wywoływać handlerBehaviorChanged() po zarejestrowaniu lub wyrejestrowaniu detektora zdarzenia .

Potrzebuję lepszego zrozumienia pamięci podręcznej w pamięci. W szczególności potrzebuję Chrome do generowania pełnego webRequest/strumienia zasobów za każdym razem, gdy odwiedzam witrynę, w tym odświeżania strony. Oczywiście nie może to być prawda, jeśli korzysta się z pamięci podręcznej w pamięci.

Czy pamięć podręczna pamięci jest czystą kartą dla nowej karty, gdy tworzę nową kartę?

Co oznacza "kosztowna operacja" oznacza ilościowo?

Jeśli wezwę handlerBehaviorChanged() za każdym razem, gdy strona zostanie ponownie załadowana na tej samej karcie, czy to zagwarantuje pełny wodospad? W takim przypadku limit 20 razy w ciągu 10 minut wydaje się dość niski.

Każda pomoc jest bardzo ceniona, dzięki!

Odpowiedz

1

W twoim przypadku myślę, że twój problem dotyczy pamięci podręcznej długoterminowej zamiast pamięci podręcznej w pamięci. W wodospadzie zasobów kilka żądań można oznaczyć jako buforowane. Jest wiele sposobów na uniknięcie tego, jeśli chcesz:

  • Zamiast normalnego przeładowania (F5) naciśnij CTRL + F5. To przeładuje wszystkie zasoby, zwykle wciskam CTRL + F5 kilka razy, chociaż jeden raz musi być wystarczający.
  • Jeśli trzeba, że ​​strona przeładować pewne szczególne środki z serwera za każdym razem, każdy użytkownik odwiedzi Cię wtedy można korzystać z niektórych z tych technik:

Pamiętaj, aby stosować te zasady tylko do zasobów, które naprawdę potrzebują. W przeciwnym razie twój serwer internetowy zostanie przeciążony dodatkowymi żądaniami.

Jak stwierdzono w dokumencie, o którym mowa: w pamięci cache nie ma zastosowania do różnych renderingów stronie nawet dla tej samej zawartości w tej samej zakładce (w pamięci cache jest dołączony do życia render procesu) więc myślę, że to nie dotyczy twojego przypadku. Cykl renderowania kończy się za każdym razem, gdy strona jest wyświetlana, a inny zaczyna się po ponownym wyświetleniu. Na przykład: kiedy obraz jest ładowany po raz pierwszy pojawia się w wodospadzie, ale nie dla późniejszych żądań na tej samej stronie.

+0

[potrzebne źródło] dla pierwszego wniosku – Xan

+1

Miałem na myśli ten sam dokument wspomniany w pytaniu – user1039663

+0

Ach, przepraszam, nie zauważyłem tego. – Xan

Powiązane problemy