Як змусити відладчик сценарію Chrome перезавантажити javascript?


244

Мені дуже подобається можливість редагування javascript у хромованому налагоджувачі, однак я вважаю, що це може бути дуже проблематичним для отримання налагоджувача для повторного отримання JavaScript з сервера.

Іноді мені доводиться йти так далеко, що тільки закриття налагоджувача і перезавантаження кадру працює нормально - але в інший час (dI не може чітко визначити, за яких умов це відбувається) я маю очистити свій тимчасовий кеш-Інтернет. Іноді я клянусь, що мені доведеться повністю закрити хром, потім очистити кеш і потім завантажити сторінку до того, як налагоджувач нарешті покаже мені найсучасніший сценарій.

(Примітка. Немає кешування сценарію веб-сервером)

Мені було цікаво, чи знає хто-небудь про швидкий і простий спосіб сказати налагоджувачу, щоб він визнав недійсним всі його JavaScript і заново все це перезавантажив на сторінці?


1
Іноді мені навіть доводиться перезапускати IIS Express, щоб змусити файли перезавантажитися належним чином.
Кріс О

Відповіді:


330

Під час розробки сценарію спробуйте відключити кеш Chrome.

Коли ви перезавантажуєте сторінку, JavaScript тепер повинен бути оновлений.


Chrome близько 2011 року

Відкрийте налаштування Вимкнути кеш


Chrome circa 2018

Відкрийте налаштування Вимкнути кеш

Ви також можете отримати доступ до нього на вкладці мережі:

Вкладка "Мережа"


8
Отже, чи це застосовується весь час чи лише тоді, коли налагоджувач відкритий?
PilotBob

7
лише коли відкриті інструменти Dev
Karolis

11
У мене це було все разом, і зараз раптом я застряг із певним файлом. Хтось знайде рішення?
IronicMuffin

5
Це просто додало декількох років у моє життя. Я спробував CMD + SHIFT + R, але це не вдалося. Спасибі
Кевін Зич

7
Для тих, хто останнім часом стикається з цим питанням, зауважте, що меню налаштувань вимкнено у трьох вертикальних меню в Інструментах для розробників. Там ви зможете встановити прапорець, щоб відключити кеш.
Скотт C Вілсон

136

введіть тут опис зображення

Контекстне меню, показане вище, доступне натисканням / натисканням та утримуванням кнопки "перезавантажити" правою кнопкою миші, тоді як Chrome Dev Tools відкривається .

Для мене найкраще працює порожній кеш-пам'ять та жорстке перезавантаження.

Ще одна перевага: ця опція залишає недоторканими всі інші відкриті вкладки та дані веб-сайту. Він лише перезавантажує та очищає поточну сторінку.


5
Це корисно, особливо тому, що це легко пояснити. У мене була проблема з клієнтом, який не бачив модифікацій, внесених на його веб-сайті. Натисніть F12, потім клацніть правою кнопкою миші кнопку перезавантаження, виберіть Порожній кеш і Hard Reload. Я закінчив, тобі до цього коментаря :-)
Gull_Code

Це найкраща хромована особливість :), будь-коли товариш.
Bishoy Hanna

1
Дякую! Я намагався з'ясувати, чому кнопка "Перезавантажити" іноді дає мені меню, а іноді - ні.
iconoclast

1
У мене не було проблем із Ctrl + Shift + R при перезавантаженні файлів Javascript, але це не призведе до оновленого вмісту, який розміщувався у файлах HTML. Порожній кеш і Hard Reload зробили для цього фокус.
S. Baggy

Найкращий спосіб зробити це, скористайтеся цим порожнім кешем і жорстким перезавантаженням
hoogw

34

Ви завжди можете очистити певний файл, виконавши наступне:

  1. Відкрийте інструменти Dev
  2. Перейдіть на вкладку Джерела
  3. Знайдіть свій сценарій / зображення / файл
  4. Перевірте праву панель, щоб побачити, чи ваш файл оновлений

Якщо ні:

  1. Клацніть правою кнопкою миші ресурс на панелі ліворуч і виберіть "Відкрити посилання на новій вкладці"
  2. Примушуйте перезавантажувати ресурс описаними вище способами. (Див. Приклад @Bishoy Hanna)

Це дуже зручно, якщо у вас є ресурси, які знаходяться у кадрах, і CTRL+F5не потрібно їх оновлювати.


1
правда. натискання CTRL + F5 = Очистити кеш-оновлення поточної сторінки
СТАЛІ

У мене немає вкладки "Ресурси".
Майк Ш

@MikeW він перейменований на Джерела - я оновив відповідь
Стів Таубер


9

Для Google Chrome це не Ctrl+ F5. Це Shift+, F5щоб очистити поточний кеш! Це працює для мене!


Чому? Я не розумію, в чому різниця між цим та коментарем. Врешті-решт, найкорисніше питання побачимо у верхній частині публікації.
RPDeshaies

2
Допитуючий жодного разу не згадував Ctrl-F5 , тому за визначенням ваша відповідь не є відповіддю на запитання, задане запитуючим, його скоріше зауваження , виправлення відповідей інших народів, і до цього слід ставитися так.
Едвард А

9

Ось ярлик до DevTools:

  1. F12 щоб відкрити Chrome DevTools
  2. F1 щоб відкрити Налаштування DevTools
  3. Поставте прапорець Відключити кеш-пам'ять (поки DevTools відкритий), як показано нижче:

введіть тут опис зображення

Примітка: Оновлено за коментарем Дімі. Вони, як правило, переміщують його, тому повідомте мені або оновіть публікацію, якщо ви помітите, що вона змінена.



2

Якщо ви вносите локальні зміни в JavaScript в Інструменти для розробників, вам потрібно переконатися, що вимкнено ці зміни, перш ніж перезавантажувати сторінку.

На вкладці "Джерела", відкривши скрипт, клацніть правою кнопкою миші свій скрипт і в контекстному меню натисніть на параметр "Локальні зміни". Це відображає список сценаріїв, до яких ви зберегли модифікації. Якщо ви бачите це у цьому вікні, Інструменти для розробників завжди зберігатимуть вашу локальну копію, а не оновлюють її з сервера. Натисніть кнопку "повернути", потім знову оновіть, і вам слід отримати нову копію.


1

Схоже, налагоджувач Chrome завантажує вихідні файли в пам'ять і не відпускає їх, незважаючи на оновлення кешу браузера, тобто у нього є власний кеш, крім кешу браузера, який не синхронізований. Принаймні, це стосується роботи з файлами, що відображаються на джерелах (я налагоджую джерела машинопису). Після успішного оновлення кешу браузера та перевірки того, що переглянувши його безпосередньо у вихідний файл, ви завантажуєте оновлений файл, але як тільки ви знову відкриєте файл у відладчику, він продовжує повертати старий файл незалежно від версії зі звичайного кешу браузера. Дуже неприємно насправді.

Я вважав би це помилкою в хромі. Я використовую версію 46.0.2490.71 м.

Єдине, що допомагає - це перезапустити хром (закрити всі хромовані браузери).


0

Якщо файли, які ви завантажуєте, кешовані, і якщо внесені вами зміни не відображаються в коді, то є два способи впоратися з цим

  1. Очистіть кеш, як розповіли всі

  2. Якщо ви хочете, щоб кеш і тільки файли повинні бути перезавантажені, ви можете перейти на вкладку мережі інструменту розробки та очистити все, що було завантажено. наступного разу він не завантажить його з кеша. у вас відбудуться останні зміни.


0

Якщо ви працюєте на локальному сервері на Apache, ви можете отримати те, що виглядає як проблеми з кешуванням. Це сталося зі мною, коли у мене був сервер Apache під Vagrant (у virtualbox).

Просто додайте наступні рядки до вашого конфігураційного файлу ( /etc/httpd/conf/httpd.confабо його еквівалента):

#Disable image serving for network mounted drive
EnableSendfile off

Зауважте, що варто пошукати конфігураційний файл, щоб побачити, чи EnableSendfileвстановлений він onще де-небудь.


0

Також є 2 (швидких) способи вирішення:

  1. Використовуйте режим інкогніто під налагодженням, закрийте вікно та знову відкрийте його.
  2. Видаліть історію переглядів

0

Деактивація точок перерви спричинила завантаження нового сценарію для мене.


0

На мою думку, найпростіше працювати в сесії приватного перегляду хрому, щоб ваші файли javascript не надходили з кешу.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.