Naprawdę podoba mi się możliwość edytowania javascript w debuggerze chrome, jednak uważam, że może być bardzo problematyczne przy ponownym pobieraniu JavaScript z serwera.
Czasami muszę posunąć się tak daleko, jak tylko zamknięcie debugera i ponowne załadowanie ramki działa OK - ale innym razem (dI nie mogę ustalić, w jakich warunkach to nastąpi) muszę wyczyścić moją tymczasową pamięć podręczną. Czasami przysięgam, że muszę całkowicie zamknąć chrome, następnie wyczyścić pamięć podręczną, a następnie załadować stronę, zanim debugger w końcu pokaże mi najbardziej aktualny skrypt.
(Uwaga. Serwer nie buforuje skryptu)
Zastanawiałem się, czy ktoś wiedział o szybkim i łatwym sposobie powiedzenia debuggerowi, aby unieważnił cały skrypt javascript i ściągnął go na nowo po przeładowaniu strony?
źródło
Odpowiedzi:
Podczas opracowywania skryptu spróbuj wyłączyć pamięć podręczną Chrome.
Po ponownym załadowaniu strony JavaScript powinien zostać odświeżony.
Chrome około 2011 r
Chrome około 2018 roku
Możesz również uzyskać do niego dostęp na karcie sieci:
źródło
Menu kontekstowe pokazane powyżej jest dostępne po kliknięciu prawym przyciskiem myszy / naciśnięciu i przytrzymaniu przycisku „przeładuj”, podczas gdy Chrome Dev Tools jest otwarty .
Pusta pamięć podręczna i twarde przeładowanie działają najlepiej dla mnie.
Kolejna zaleta: ta opcja utrzymuje nietknięte wszystkie inne otwarte karty i dane witryny. Przeładowuje tylko i czyści bieżącą stronę.
źródło
Zawsze możesz wyczyścić określony plik, wykonując następujące czynności:
Jeśli nie:
Jest to bardzo przydatne, jeśli masz zasoby w ramkach i
CTRL+F5
nie wymusza ich odświeżania.źródło
Shift+ F5szybko usuwa pamięć podręczną.
źródło
W przypadku Google Chrome nie jest to Ctrl+ F5. To Shift+, F5aby wyczyścić bieżącą pamięć podręczną! Mi to pasuje !
źródło
Oto skrót do DevTools:
Uwaga: Zaktualizowano zgodnie z komentarzem Dimi. Zwykle go przenoszą, więc daj mi znać lub zaktualizuj post, jeśli zauważysz, że został zmieniony.
źródło
W systemie Windows Ctrl+ Shift+ rwymusiłoby ponowne załadowanie skryptu w chrome.
źródło
Jeśli wprowadzasz lokalne zmiany w javascript w Narzędziach dla programistów, musisz upewnić się, że WYŁĄCZYĆ te zmiany przed ponownym załadowaniem strony.
Na karcie Źródła, przy otwartym skrypcie, kliknij skrypt prawym przyciskiem myszy i wybierz opcję „Modyfikacje lokalne” z menu kontekstowego. Spowoduje to wyświetlenie listy skryptów, w których zostały zapisane modyfikacje. Jeśli zobaczysz go w tym oknie, Narzędzia dla programistów zawsze zachowają lokalną kopię zamiast odświeżać ją z serwera. Kliknij przycisk „Cofnij”, a następnie odśwież ponownie, a otrzymasz nową kopię.
źródło
Wygląda na to, że debuger Chrome ładuje pliki źródłowe do pamięci i nie pozwala im odejść pomimo aktualizacji pamięci podręcznej przeglądarki, tzn. Ma swoją własną pamięć podręczną oprócz pamięci podręcznej przeglądarki, która nie jest zsynchronizowana. Przynajmniej tak jest w przypadku pracy ze źródłowymi plikami mapowanymi (debuguję źródła maszynopisu). Po pomyślnym odświeżeniu pamięci podręcznej przeglądarki i sprawdzeniu jej, przeglądając bezpośrednio plik źródłowy, pobierasz zaktualizowany plik, ale jak tylko ponownie otworzysz plik w debuggerze, będzie on zwracał stary plik bez względu na wersję ze zwykłej pamięci podręcznej przeglądarki. Rzeczywiście bardzo denerwujące.
Uważam to za błąd w chrome. Używam wersji 46.0.2490.71 m.
Jedyną rzeczą, która pomaga, jest restart Chrome (zamknij wszystkie przeglądarki Chrome).
źródło
Jeśli ładowane pliki są buforowane, a wprowadzone zmiany nie znajdują odzwierciedlenia w kodzie, istnieją 2 sposoby na poradzenie sobie z tym
Wyczyść pamięć podręczną, jak wszyscy mówili
Jeśli chcesz Cache i tylko pliki muszą zostać ponownie załadowane, możesz przejść do karty sieciowej narzędzia programistycznego i wyczyścić wszystko, co zostało załadowane. następnym razem nie załaduje go z pamięci podręcznej. będziesz mieć swoje najnowsze zmiany.
źródło
Jeśli prowadzisz lokalny serwer na Apache, możesz uzyskać coś, co wygląda jak problemy z buforowaniem. Stało się tak, gdy miałem serwer Apache działający pod Vagrant (w virtualbox).
Wystarczy dodać następujące wiersze do pliku konfiguracyjnego (
/etc/httpd/conf/httpd.conf
lub równoważnego):Pamiętaj, że warto przeszukać plik konfiguracyjny, aby sprawdzić, czy
EnableSendfile
jest ustawionyon
gdziekolwiek indziej.źródło
Istnieją również 2 (szybkie) obejścia:
źródło
Dezaktywacja punktów przerwania spowodowała załadowanie nowego skryptu.
źródło
Moim zdaniem najłatwiej jest pracować w „prywatnej sesji przeglądania” chrome, aby upewnić się, że pliki javascript nie pochodzą z pamięci podręcznej.
źródło
Możesz także użyć tego rozszerzenia Chrome, aby szybko przełączać się między pamięcią podręczną a nie: https://chrome.google.com/webstore/detail/cache-killer/jpfbieopdmepaolggioebjmedmclkbap
źródło