Как заставить скрипт отладчика Chrome перезагрузить JavaScript?

244

Мне действительно нравится возможность редактировать javascript в отладчике Chrome, однако я нахожу, что может быть очень проблематично заставить отладчик повторно получить JavaScript с сервера.

Иногда мне приходится заходить так далеко, просто закрывая отладчик и перезагружая фрейм, все в порядке - но в других случаях (dI не может определить, при каких условиях это происходит) я должен очистить свой временный интернет-кеш. Иногда я клянусь, что должен полностью закрыть chrome, затем очистить кеш и затем загрузить страницу, прежде чем отладчик наконец покажет мне самый современный скрипт.

(NB. Веб-сервер не кэширует скрипт)

Мне было интересно, если бы кто-нибудь знал о быстром и простом способе сказать отладчику, чтобы сделать недействительным весь его javascript и получить все заново при перезагрузке страницы?

Крис Фьютрелл
источник
1
Иногда мне даже приходится перезагружать IIS Express, чтобы перезагрузить систему.
Крис О

Ответы:

330

Пока вы разрабатываете свой скрипт, попробуйте отключить кеш Chrome.

Когда вы перезагрузите страницу, JavaScript теперь должен обновиться.


Хром около 2011

Открыть настройки Отключить кеш


Хром около 2018

Открыть настройки Отключить кеш

Вы также можете получить к нему доступ на вкладке сети:

Вкладка сеть

adrianbanks
источник
8
Итак, это применимо все время или только когда открыт отладчик?
PilotBob
7
только когда инструменты для разработки открыты
Karolis
11
У меня был этот набор все время, и теперь внезапно я застрял с определенным файлом. Кто-нибудь найдет решение?
IronicMuffin
5
Это только добавило несколько лет моей жизни. Я попробовал CMD + SHIFT + R, но это не сработало. Спасибо
Кевин Зыч
7
Для тех, кто придет к этому вопросу совсем недавно, обратите внимание, что меню настроек отключено из меню с тремя вертикальными точками в Инструментах разработчика. Там вы сможете поставить галочку для отключения кеша.
Скотт С Уилсон
136

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

Контекстное меню, показанное выше, доступно путем щелчка правой кнопкой мыши / нажатия и удержания кнопки «перезагрузка», когда открыты Chrome Dev Tools .

Пустой кеш и полная перезагрузка работают лучше для меня.

Другое преимущество: эта опция не затрагивает все остальные открытые вкладки и данные сайта. Это только перезагружает и очищает текущую страницу.

Бишой ханна
источник
5
Это полезно, особенно потому, что это легко объяснить. У меня была проблема с клиентом, который не видел изменений, сделанных на его сайте. Нажмите F12, затем щелкните правой кнопкой мыши кнопку перезагрузки, выберите «Очистить кэш» и «Жесткая перезагрузка». Я сделал, спасибо этому комментарию :-)
Gull_Code
Это лучшая функция Chrome :), приятель в любое время.
Bishoy Hanna
1
Спасибо! Я пытался понять, почему кнопка «Перезагрузить» иногда дает мне меню, а иногда нет.
иконоборчество
1
У меня не было проблем с Ctrl + Shift + R при перезагрузке файлов Javascript, но это не вернуло обновленный контент, который был обработан в файлах HTML. Пустой кэш и Hard Reload сделали свое дело для этого.
С. Бэгги
Лучший способ сделать это, использовать этот пустой кэш и перезагрузить компьютер
hoogw
34

Вы всегда можете очистить определенный файл, выполнив следующие действия:

  1. Инструменты Open Dev
  2. Нажмите на вкладку Источники
  3. Найдите свой скрипт / изображение / файл
  4. Проверьте правую панель, чтобы увидеть, если ваш файл обновлен

Если не:

  1. Щелкните правой кнопкой мыши ресурс на левой панели и выберите «Открыть ссылку в новой вкладке».
  2. Принудительно перезагрузите ресурс способами, описанными выше. (См. Пример @Bishoy Hanna)

Это очень удобно, если у вас есть ресурсы, которые находятся в кадрах, и CTRL+F5не требует их принудительного обновления.

Стив Таубер
источник
1
правда. нажатие CTRL + F5 = очистить кэш, обновить текущую страницу
STEEL
У меня нет вкладки Ресурсы.
Майк W
@MikeW это было переименовано в Источники - я обновил ответ
Стив Таубер
12

Shift+ F5быстро очищает кеш.

Питер Келли
источник
18
Боюсь, Ctrl-F5 не срезает горчицу. Старый файл JavaScript остается в отладчике.
Крис Фьютрелл
9

Для гугл хрома это не Ctrl+ F5. Это Shift+ F5очистить текущий кеш! Меня устраивает !

RPDeshaies
источник
Зачем ? Я не понимаю, в чем разница между этим и комментарием. В конце самый полезный вопрос будет виден в верхней части поста.
RPDeshaies
2
Спрашивающий ни разу не упомянул Ctrl-F5 , поэтому по определению ваш ответ не является ответом на вопрос, заданный спрашивающим, это скорее комментарий , исправление к ответам других людей, и к нему следует относиться так.
Эдвард А,
9

Вот ярлык для DevTools:

  1. F12 открыть Chrome DevTools
  2. F1 открыть настройки DevTools
  3. Установите флажок Отключить кэш (пока открыт DevTools), как показано ниже:

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

Примечание: Обновлено в соответствии с комментарием Дими. Они, как правило, перемещают его, поэтому дайте мне знать или обновить сообщение, если вы заметите, что оно изменилось.

Тони Л.
источник
3

В Windows Ctrl+ Shift+ rпринудительно перезагрузит скрипт в chrome.

Виджай Нандвана
источник
2

Если вы вносите локальные изменения в javascript в Инструментах разработчика, вам необходимо отключить эти изменения перед перезагрузкой страницы.

На вкладке «Источники» при открытом сценарии щелкните его правой кнопкой мыши и выберите «Локальные изменения» в контекстном меню. Откроется список сценариев, в которые вы сохранили изменения. Если вы видите его в этом окне, Developer Tools всегда будет хранить вашу локальную копию, а не обновлять ее с сервера. Нажмите кнопку «вернуться», затем обновите снова, и вы должны получить свежую копию.

Стив К
источник
1

Похоже, что отладчик Chrome загружает исходные файлы в память и не отпускает их, несмотря на обновления кэша браузера, т. Е. Он имеет свой собственный кэш, кроме кеша браузера, который не синхронизирован. По крайней мере, так происходит при работе с файлами, сопоставленными с исходным кодом (я отлаживаю источники машинописи). После успешного обновления кеша браузера и проверки его путем перехода непосредственно к исходному файлу вы загружаете обновленный файл, но как только вы снова откроете файл в отладчике, он продолжит возвращать старый файл независимо от версии из обычного кеша браузера. Действительно очень раздражает.

Я бы посчитал это ошибкой в ​​chrome. Я использую версию Версия 46.0.2490.71 m.

Единственное, что помогает, это перезапуск Chrome (закройте все браузеры Chrome).

Дэвид Фаландер
источник
0

Если загружаемые вами файлы кэшируются и если внесенные вами изменения не отражены в коде, есть два способа справиться с этим.

  1. Очистить кэш, как все сказали

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

iamshravan
источник
0

Если вы используете локальный сервер на Apache, вы можете получить то, что похоже на проблемы с кэшированием. Это случилось со мной, когда у меня был сервер Apache, работающий под Vagrant (в virtualbox).

Просто добавьте следующие строки в ваш конфигурационный файл ( /etc/httpd/conf/httpd.confили эквивалентный):

#Disable image serving for network mounted drive
EnableSendfile off

Обратите внимание, что стоит поискать в конфигурационном файле, чтобы увидеть, EnableSendfileустановлен ли он onгде-либо еще.

MattCochrane
источник
0

Есть также 2 (быстрых) обходных пути:

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

Деактивация точек останова заставила меня загрузить новый скрипт.

Майк В
источник
0

На мой взгляд, проще всего работать в «частном сеансе просмотра» Chrome, чтобы гарантировать, что ваши файлы javascript не поступают из кэша.

scottbiker
источник