Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 0

Вопрос по javascript, caching, firefox &#8211 Как отключить кеширование в Firefox?

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

От теории к практике

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

Системный подход

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

  1. Запускаем браузер и в адресной строке вводим фразу about:config, соглашаемся с риском потерять лицензию на используемую копию ПО.Perehod-na-stranitsu-about-config-v-brauzere-Mozilla-Firefox.png
  2. В новом окне переводим курсор в правый угол пользовательского интерфейса, куда вписываем поочередно следующие параметры: network.http.use-cache; browser.cache.offline; browser.cache.disk; browser.cache.memory.Otklyuchenie-kesha-v-Firefox.png
  3. Для любых характеристик меняем значение с true на false. Для этого достаточно кликнуть по каждой из них ЛКМ дважды.
  4. Сохраняем внесенные изменения и перезапускаем браузер.

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

139139

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

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

17   ответов

33

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

11

но оба они ИМХО отличные решения.

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

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

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

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

11

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

88

FYI: версия, над которой я работаю — 30.0

Вы можете :

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

1212

CTRL-F5 обновить страницу?

1010

чтобы отключить кэширование только для JavaScript, вам придется полностью отключить кэширование.

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

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

енения значения: 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).

33

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

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

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

225225

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

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

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

browser.cache.offline.enable = false 
44

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

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

<filesmatch> FileETag None <ifmodule> 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 

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

77

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

SRC = «https://vike.io/yourJavascriptFile.js? randomNumber = 434534»

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

11

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

77

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

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

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

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

6161

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

33

CTRL-F5 перезагрузить в обход кеша.

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

network.http.use-cache = false 

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

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

это то, что сработало для меня.

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

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

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

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

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

Похожие вопросы

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

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

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

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

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

browser.cache.offline.enable = false  

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

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

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

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

Вы можете:

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

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

src= «yourJavascriptFile.js? RandomNumber = 434534»

где randomNumber произвольно генерируется каждый раз.

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

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

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

qaru.site/questions/45854/… имеет аналогичный контент, но с тех пор позиционирование немного изменилось.

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

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

<filesmatch>  FileETag None  <ifmodule>  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>

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

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

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

jquery.somefile.js?v=0.5  

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

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

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

network.http.use-cache = false  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

Используемые источники:

  • https://firefx.ru/faq/kak-otklyuchit-keshirovanie-v-firefox
  • https://vike.io/ru/345335/
  • https://techarks.ru/qa/javascript/kak-otklyuchit-keshirovanie-v-19/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации