Принудительное обновление только файлов JavaScript в Firefox и Chrome


64

Я хочу удалить только файлы JavaScript из моих веб-браузеров (Firefox и Chrome). Я занимаюсь отладкой JavaScript, и меня раздражает, что мой JS просто не будет обновляться всякий раз, когда я меняю свои файлы JS. Единственное, что я могу сделать сейчас, - это очистить мои куки, но при этом стирается вся моя история просмотров.

Как очистить / обновить файлы JavaScript, загруженные в мои браузеры, без очистки других файлов?

Ответы:


42

Я делаю это сам для развития. Я использую Ctrl+ F5. Это как силовое обновление. Это обновляет страницу, включая повторную загрузку любых файлов JavaScript или CSS, на которые есть ссылки, даже если они были кэшированы.

Это НЕ очистит что-либо еще, например историю посещенных страниц.

Но учтите, что хотя я знаю, что это работает в Firefox и, возможно, в Internet Explorer, я не уверен, работает ли Ctrl+ так F5же в Chrome.

Также Иегик говорит:

В некоторых браузерах вы можете использовать ` Ctrl+ Shift+ Rдля выполнения той же задачи.


Большой! Я изменяю принятый ответ на ваш, потому что ваш - более простое решение
Graviton

Я ценю это ... Но учтите, что хотя я знаю, что это работает в Firefox и, возможно, в IE, я не уверен, что CTRL-F5 работает в Chrome таким же образом.
7

2
То же самое с бета-версией Chrome 21 на Win7 - обновление страницы с помощью ctrl-f5 не повторяет запрос файла JS (я использую Чарльза для двойной проверки).
Артем Руссаковский

1
на самом деле chrome сначала обрабатывает Ctrl + F5 как нормальное обновление, последующее нажатие Ctrl + F5 (более одного) в течение короткого времени приведет к перезагрузке всех источников
Zeela

1
Для Chrome, F12 и правой кнопкой мыши нажмите кнопку перезагрузки. superuser.com/questions/220179/…
Сиз Тиммерман

50

С Chrome:

Начиная с Chrome 15, откройте Инструменты разработчика, нажмите на шестеренку в левом нижнем углу экрана и установите флажок Отключить кэш .

Отключить кэш в Chrome 15 и выше

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


Спасибо за совет - я только что проверил, и этот вариант есть в Chrome 14 также.
клавиши

Genius! Это отличная находка.
Randomblue

Блестящий, я искал это.
Артем Руссаковский

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

На второй взгляд кажется, что эти опции активны только когда виден devtools: twitter.com/ChromiumDev/status/227356682890670080 (из stackoverflow.com/a/7000899/372654 )
Халил Озгюр,

8

Я не согласен с @ 7wp. Поскольку некоторые из ваших конечных пользователей не знакомы с функцией Ctrl+ F5, а некоторые даже не знают о различиях между браузерами и даже о существовании других браузеров (например, старейшин), вы должны заставить браузер загрузить новую копию файлы JS / CSS.

Лучшее решение здесь - добавить метку времени в конце имен файлов .js / .css или добавить версию svn, что также является отличной идеей.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

5

Возможно, вы захотите попробовать очистить только ваш кеш, а не весь просмотр, историю, куки, пароли, сохраненные данные формы и еще много чего (по умолчанию).

В Firefox 3.5 перейдите на

Инструменты »Очистить недавнюю историю ...

Затем убедитесь, что выбран только «Кэш», прежде чем выбрать «Очистить сейчас».

В Chrome (не знаю, какую именно версию вы используете, поскольку я использую сборки dev), перейдите в

Значок гаечного ключа (Инструменты) »Параметры» вкладка Личные вещи »Очистить данные просмотра ...

Опять же, убедитесь, что только «Очистить кеш» отмечен.

Кроме того, вы можете попробовать открыть новый закрытый сеанс в Firefox или в окне Инкогнито в Chrome; также не следует кэшировать какие-либо файлы (включая файлы .JS), которые вы автоматически загружаете и обрабатываете при просмотре.


Инкогнито, вероятно, путь для Chrome.
mdoar

1

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

Попробуйте создать код JavaScript, который вы загружаете в файл PHP ... просто поместите его <?php ?>в начало и вставьте в ext .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Поскольку имя меняется, Internet Explorer считает, что это новый файл;)


1
Не нужно менять имя на «.php». Если вы поставите «filename.js? T =» + t, результат будет таким же. Вы также можете сделать это с помощью '.css'. Все наши производственные системы используют этот трюк для подтверждения того, что клиенты используют нужные файлы содержимого.
Леонель Мартинс

1
Как примечание, мы склонны использовать номер версии SVN вместо даты / времени. Таким образом, мы получаем преимущества кэширования и обновляемся только тогда, когда мы фактически фиксируем.
Groo

Спасибо! Этот трюк полностью ускользнул от меня. Я боролся с этой проблемой в течение многих дней, и это сделает это для меня. Я просто поместил это в конце URL: "? <? Php echo time ()?>"
thrashr888

1

В Chrome вы можете просто нажать Ctrlи нажать кнопку обновления. Я обнаружил это случайно.


Это сильно обновляет всю страницу, я не думаю, что это просто обновляет только Javascript.
Иво Флипс

1

Я открываю файл JavaScript на отдельной вкладке, Shift+ обновление, проверяю, что я вижу последние изменения, затем Shift+ обновляю фактическую страницу (фактически, в моем случае, кадр в наборе фреймов, который, кажется, ухудшает положение). Это работает почти все время.



0

Зайдите в настройки контента в Chrome, отключите JavaScript и сохраните.

Затем снова включите JavaScript.


0

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


Добро пожаловать в Супер пользователя! Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос.
DavidPostill


0

Добавьте некоторую динамическую функцию даты в конец вашего файла JavaScript. Это заставит браузер загрузить обновленный файл JavaScript. Это значит, что при добавлении файла .js вы можете добавить .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Конечно, это можно удалить, как только ваша отладка будет завершена и готова к запуску.


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