Как отключить кеширование в Firefox?

Во время разработки мне приходится постоянно «очищать кеш» в Firefox, чтобы он использовал последнюю версию файлов JavaScript.

Есть ли какая-то настройка (about: config), чтобы полностью отключить кеширование для файлов JavaScript? Или, если нет, для всех файлов?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
146
0
123 780
17
Перейти к ответу Данный вопрос помечен как решенный

Ответы 17

Вы пробовали использовать CTRL-F5 для обновления страницы?

Я действительно сомневаюсь, что это работает надежно, по крайней мере, при наличии фреймов и наборов фреймов.

Thilo 14.11.2008 13:59

правильно, он не всегда перезагружает JS / CSS в iframe, но в Firefox вы можете, по крайней мере, вывести этот фрейм на новую вкладку и перезагрузить там.

scunliffe 14.11.2008 14:05

Я всегда использовал Ctrl-F5 .... затем я обнаружил, что он не загружает мои новейшие версии js-файлов, с которыми я работал :( Также был в iframe (я знаю, iframe - это дьявол, а не мой выбор ).

Gromer 06.12.2011 20:35

Ctrl-F5 не сбрасывает кеширование файлов javascript. что он делает (в основном), это очищает ваш сеанс и файлы cookie, но не кешированный javascript и таблицы стилей

AceMark 11.09.2012 04:52
Ответ принят как подходящий

Введите «about: config» в адресную строку Firefox и установите:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

Если вы разрабатываете локально или используете новый атрибут манифеста HTML5, вам также может потребоваться установить следующее в about: config -

browser.cache.offline.enable = false

network.http.use-cache для меня не существует. Изменение browser.cache.offline.enable для меня не имеет значения.

Curtis 17.02.2016 03:49

Я не сомневаюсь, что это хороший ответ, но в последних сборках firefox он больше не соответствует действительности (сейчас я использую версию для разработчиков 47.0a2). Однако отключение кеширования в настройках веб-разработчика для меня эффективно.

JosephStyons 06.04.2016 05:13

Вы можете использовать CTRL-F5 для перезагрузки в обход кеша.

Вы можете установить настройки в Firefox, чтобы не использовать кеш

network.http.use-cache = false

Вы можете настроить свой веб-сервер для отправки заголовков no-cache / Expires / Cache-Control для файлов js.

Вот пример для веб-сервера apache.

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

Вам нужно будет настроить инструменты вашей конкретной среды, но если вы используете PHP / Apache, вот отличное решение как для вас, так и для конечных пользователей.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/

Если вы работаете с серверным кодом, вы можете сгенерировать случайное число и добавить его в конец src следующим образом ...

src = "yourJavascriptFile.js? randomNumber = 434534"

при этом randomNumber генерируется каждый раз случайным образом.

Это единственное решение, которое сработало для меня, помимо очистки кеша браузера вручную при каждом обновлении.

Curtis 17.02.2016 03:50

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

CTRL-F5 или удерживание клавиши Shift при нажатии кнопки «Обновить» - это то, что я делал раньше, но функция «Отключить кэш» на панели инструментов веб-разработчика - отличный способ сделать это. Таким образом, вам не нужно полностью отключать кеш Firefox.

Jon Onstott 11.01.2010 20:53

Однако не забудьте включить кеш после тестирования. ;)

neurolabs 01.01.2011 19:30

@Shanimal, у меня работает в 14.0.1, может захотеть деинсталлировать / переустановить что ли.

Lucas 17.08.2012 21:01

@Lucas doh! Элементы на сервере, с которым я работал, кешировались, но я забыл удалить свой комментарий ... Спасибо.

Shanimal 24.08.2012 22:03

Это больше не работает, пока Криспедерик не исправит несколько новых изменений Firefox в последней версии. Я бы выбрал решение about: config, которое лучше для разработчиков.

Ligemer 11.09.2013 02:39

Я использую CTRL-SHIFT-DELETE, который активирует функцию конфиденциальности, позволяя вам одновременно очистить кеш, сбросить файлы cookie и т. д. Вы даже можете настроить его так, чтобы он просто ДЕЙСТВОВАЛ, вместо того, чтобы открывать диалоговое окно с просьбой подтвердить.

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

Вместо этого я решил поместить следующее в свой файл vhost.conf (это также можно сделать в .htaccess) в моей среде разработки:

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

В моей среде разработки это гарантирует, что js и css всегда будут извлекаться. Кроме того, это не влияет на остальную часть моего просмотра, и это также работает для всех браузеров, поэтому тестирование в chrome / ie и т. д. Также легко.

Нашел здесь фрагмент, а также некоторые другие полезные трюки с apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Чтобы мои клиенты всегда видели последнюю версию в производственной среде, мы увеличиваем строку запроса в js include при каждом обновлении, т.е.

jquery.somefile.js?v=0.5

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

После 2 часов просмотра различных альтернатив это то, что у меня сработало.

Моим требованием было отключить кеширование файлов js и css в моем веб-приложении, защищенном Spring. Но в то же время кэширование этих файлов «внутри» определенного сеанса.

Передача уникального идентификатора с каждым запросом - один из рекомендуемых подходов.

И вот что я сделал: - Вместо

<script language = "javascript" src = "js/home.js"></script>

я использовал

<script language = "javascript" src = "js/home.js?id=${pageContext.session.id}"></script>

Любые минусы вышеуказанного подхода приветствуются. Проблемы с безопасностью ?

У последних двух опубликованных решений есть плюсы и минусы, но оба они, IMHO, отличные.

  1. Вы можете захотеть, а можете и не захотеть, чтобы ваш идентификатор сеанса был встроен в ваш URL-адрес для большей безопасности. Но в разработке это не имеет значения, а что, если вы забудете его удалить? И это действительно работает? Разве вам не понадобится что-то вроде генератора последовательных чисел (количество попаданий, хранящееся в сеансе, или, может быть, даже если 1, то 0, если 0, то 1)?

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

  3. Изменение файла vhost.conf или .htaccess отлично справляется с этой задачей без необходимости помнить о добавлении и удалении идентификатора сеанса. Но обратная сторона - производительность всех ресурсов js и css будет затронута, и если у вас большие файлы, это замедлит вашу работу.

Оба кажутся отличными, элегантными решениями - в зависимости от ваших потребностей.

Нет специальной опции для отключения кеширования только для JavaScript, вам придется полностью отключить кеширование.

FireBug имеет возможность отключить кеш браузера в раскрывающемся меню вкладки «Сеть».

В более поздних версиях Firefox, таких как Nightly, есть опция «отключить кеш», вы можете найти ее, щелкнув шестеренку. И эти параметры работают только в текущем сеансе, что означает, что когда вы закрываете инспектор и перезапускаете его, вам нужно снова проверить его, если вы хотите отключить перехват.

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

Carlos Garcia 29.10.2014 22:19

На той же странице вы хотите отключить кеширование, сделайте следующее: К вашему сведению: версия, над которой я работаю, - 30.0

Ты можешь :

open webdeveloper toolbaropen web developer

and pick disable cache

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

Если вы используете FireBug, в раскрывающемся меню вкладки «Сеть» есть возможность отключить кеш браузера.

Поддержка Firebug прекращена.

K7AAY 08.06.2020 02:29

В firefox 45 параметры кеширования диска можно установить, изменив значение: browser.cache.disk.enable

Значение можно установить на странице «about: config».

На http://kb.mozillazine.org/About:config_entries#Browser я нашел следующее описание для "browser.cache.disk.enable":

True (по умолчанию): использовать кэш диска до объема, указанного в browser.cache.disk.capacity False: отключить кеширование диска (эффект аналогичен установке browser.cache.disk.capacity на 0)

Инструменты разработчика Firefox 48

Позволяет отключать кеш только при открытой панели инструментов, что идеально подходит для веб-разработки:

  • F12
  • коробка передач в правом верхнем углу
  • прокрутите вниз вверх Расширенные настройки
  • установите флажок «Отключить кэш (при открытой панели инструментов)»

https://stackoverflow.com/a/27397425/895245 имеет аналогичное содержимое, но с тех пор расположение немного изменилось.

Спасибо ... там (и в этом потоке) есть информация о настройке network.http.use-cache на false ... но в моей версии FF (53) этот параметр больше не существует ... Этот метод намного превосходит в любом случае.

mike rodent 20.06.2017 18:00

Во-первых, это легко сделать, например, с помощью PHP, чтобы заставить браузер обновлять файлы в зависимости от даты кеширования (времени истечения срока). Если вам это просто нужно для экспериментальных нужд, попробуйте использовать ctrl + shift + del, чтобы сразу очистить весь кеш внутри браузера Firefox. Третье решение - использовать множество надстроек, выходящих из Firefox, для очистки кеша на основе временных рамок.

Другие вопросы по теме