Открытый кешированный JavaScript включает в себя Firefox
Я работаю над JavaScript для сайта, разрабатывая с помощью Firefox, и когда обновляю страницу, я не вижу своих изменений. Файл JavaScript находится во внешнем файле. Я перезагрузил и обновил страницу несколько раз, но старый файл JavaScript все еще был кеширован. Наконец, я загрузил страницу JavaScript в браузере напрямую, увидел старый script, нажал "перезагрузить" и увидел мои изменения.
Как очистить кэшированные внешние файлы JavaScript? Мне также нужно знать это, когда я говорю клиенту, что изменения сделаны, так что они не видят старых кешированных функций.
Ответы
Ответ 1
В Firefox вы можете установить плагин под названием Панель инструментов веб-разработчиков, которая имеет команду appcache clear
Я думаю, что нет никакого способа сделать это программно, но вы могли бы дать подсказку браузеру, используя что-то вроде
<script type="text/javascript" src='js/my.js?x=<?php echo rand(0,100) ?>'></script>
Ответ 2
Обход кеша один раз в Firefox:
- Нажмите кнопку перезагрузки, удерживая клавишу shift.
- Ctrl + F5
- Ctrl + shift + R или Cmd + shift + R
- для других браузеров
Некоторые службы веб-хостинга делают кешируют сервер страницы. При обходе кеша веб-браузер отправляет заголовок, чтобы сообщить серверу, что он не должен отвечать кэшированными данными.
Ответ 3
У браузеров есть возможности для очистки кэша. Обычно это вариант меню где-то. Вы не можете заставить очистить кеш.
Что вы можете сделать, это упорядочить загрузку ваших скриптов из URL-адресов, которые различаются в зависимости от номера версии (или что-то еще):
<script src='http://your.site.com/js/big_script.js?version=2'></script>
Теперь, когда вы обновляете код, вы обновляете страницы, которые его используют:
<script src='http://your.site.com/js/big_script.js?version=3'></script>
Это другой URL-адрес, и он не будет в кеше.
Ответ 4
Очень популярным методом является использование параметра querystring. Может выглядеть как
<script src="http://www.somedomain.com/foobar.js?v=1></script>
Если вы измените эту строку на v=2
, браузер перезагрузит script, если он был кэширован раньше.
Ответ 5
Сброс-перезагрузка часто более эффективно очищает кэши. Однако вы действительно не хотите полагаться на это. Хорошей техникой является версия имен файлов вашего внешнего Javascript и обновление HTML, который ссылается на них при rev. Таким образом, вы также можете положиться на кэширование лучше (например, задавать заголовки кеша "public" на вашем веб-сервере, а также указывать длительные промежутки времени Expires).