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


244

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

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

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

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


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

Ответы:


330

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

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


Хром около 2011

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


Хром около 2018

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

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

Вкладка сеть


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 это было переименовано в Источники - я обновил ответ
Стив Таубер


9

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


Зачем ? Я не понимаю, в чем разница между этим и комментарием. В конце самый полезный вопрос будет виден в верхней части поста.
RPDeshaies

2
Спрашивающий ни разу не упомянул Ctrl-F5 , поэтому по определению ваш ответ не является ответом на вопрос, заданный спрашивающим, это скорее комментарий , исправление к ответам других людей, и к нему следует относиться так.
Эдвард А,

9

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

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

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

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



2

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

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


1

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

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

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


0

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

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

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


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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.