2014-04-30 15 views
10

Mam dziwny, sporadyczny problem z narzędziami dla programistów Chrome wiszącymi na starych wersjach plików JavaScript. Będę rozwijał aplikację JS, rzeczy nucące po prostu znajdę, a potem nagle moje pliki JavaScript znikną z listy plików JavaScript na karcie "źródła". To jest moja pierwsza wskazówka, że ​​coś jest nie tak.Narzędzia dla programistów Chrome buforują starszą wersję plików JavaScript

W końcu odkryłem, że Chrome Developer Tools najwyraźniej trzyma się starej wersji pliku JavaScript. Chrome sam żąda i wykonuje najnowszą wersję z serwera, ale nie można debugować pliku JavaScript.

"Udowodniłem" sobie, że tak właśnie się stało, biorąc konkretny plik JavaScript, który zniknął z mojej listy źródeł, i zastępując go jedną linią: console.log.

Potem ponownie załadowałem stronę i zauważyłem, że instrukcja console.log pojawiła się w konsoli JavaScript. Zauważyłem również na zakładce Network, że plik JavaScript został pomyślnie pobrany, a to, co zepsuło się przez przewód, zawierało tylko jedną instrukcję: console.log.

Jednak plik JavaScript nadal nie pojawił się na liście źródeł, a po kliknięciu nazwy pliku w konsoli (gdzie pojawia się po prawej stronie konsoli, obok zalogowanego wyciągu), to przejdź do zakładki źródła i otworzy się stara wersja pliku JavaScript.

Ten plik JavaScript jest ładowany na stronę za pomocą zwykłego tagu <script>. Nie jest ładowany dynamicznie, przez inny skrypt lub przez eval. Po prostu zwykły, waniliowy znacznik <script> wskazujący plik .js na serwerze internetowym.

Próbowałem:

  1. Zapewnienie, że "Wyłącz cache (podczas DevTools jest otwarta)" jest zaznaczona w ustawieniach DevTools.
  2. Ręczne czyszczenie pamięci podręcznej i plików cookie w przeglądarce Chrome.
  3. Ponowne uruchomienie Chrome
  4. Ręczne ładowanie pliku JavaScript w osobnej karcie Chrome
  5. Wyłączenie wszelkich Chrome rozszerzenie/app, że mam zainstalowanego
  6. Running stronę w trybie incognito
  7. Odznacz zarówno „Włącz mapy źródłowe JavaScript "i" Włącz mapy źródłowe CSS "

Żadne z nich nie zmieniło zachowania. Możesz watch a video demonstrating this here, jeśli mi nie wierzysz!

Myślę, że to kwestia Chrome, ponieważ mogę używać Firefoksa bez tego problemu ... ale bardzo lubię Chrome i narzędzia programistyczne Chrome :-) Więc chciałbym, żeby to działało w Chrome ...

Aktualizacja Zgłosiłem to jako błąd przeglądarki Chrome here. Jeśli ten błąd dotyczy Ciebie lub jest dla Ciebie ważny, zagłosuj na niego i/lub dodaj komentarze z dodatkowymi informacjami.

+0

Czy używasz VS i/lub IIS, perchance? Wpadam na to od czasu do czasu, po prostu 'Ctrl' +' F5', aż * w końcu * odświeży pamięć podręczną. Będę zainteresowany, jeśli znajdziesz rozwiązanie. –

+0

Jeśli wygląda na błąd, zgłoś go: http://crbug.com/new –

+0

Czy masz skonfigurowane mapowanie obszaru roboczego? – mistaecko

Odpowiedz

0

Wygląda na to, że Google naprawił ten problem. Przestaje się dla mnie pojawiać.

+2

Nadal występuje we mnie :) – shivshnkr

+0

Polecam zgłosić raport o błędzie z taką ilością szczegółów, jakie możesz zaoferować. Możesz [odwołać się do mojego zgłoszenia błędu] (https://code.google.com/p/chromium/issues/detail?id=369797) od maja 2014. – Josh

+0

Nadal mam problem z najnowszym Chrome (45.0. 2454.101 (64-bit)) –

0

Chrome DevTools działa dobrze dla mnie. Kiedy ładuję ją dla strony, pamięta ona poza żywotnością procesu chrome, jakie źródła mam otwarte; chociaż źle złoża zamówienie. Widzę dwie różnice w naszych prefixach devtools: wyłącz pamięć podręczną i włącz mapy.Tak więc radzę:

1) odznacz wyłączyć pamięć podręczną (gdy DevTools jest otwarty), 2) (jeśli 1 nie działa) naciśnij przycisk "Przywróć domyślne i przeładuj".

0

Niektóre edytory kodu, takie jak pliki jamm z pamięci podręcznej rubymine.

Aby rozwiązać za rubymine: Plik> Invalidate cache/Restart

+1

Naprawiono problem dla mnie, tylko ja używałem PyCharm. –

Powiązane problemy