Принудительно перезагрузить / предотвратить кэш веб-работников - PullRequest
5 голосов
/ 23 сентября 2010

Я заметил, что большинство браузеров (в частности Chrome), похоже, кэшируют скрипты веб-работника даже после принудительной перезагрузки страницы (SHIFT + F5 и т. Д.).Единственный надежный способ принудительно обновить кэш - это ввести путь рабочего сценария в адресную строку и принудительно перезагрузить его отдельно.

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

Ответы [ 3 ]

5 голосов
/ 29 апреля 2013

Если у вас нет доступа к файлам конфигурации сервера или ваши метатеги не соблюдаются, быстрым обходным решением будет включение «скрипта веб-работника» для загрузки с заголовком html.

   <html>
     <head>
        <meta http-equiv="Cache-control" content="no-cache">
        <script src="jquery_or_other_lib.js"></script>
        <script src="normal_site_scripts.js"></script>
        <script src="webworker.js"></script>
     </head>
     <body>
     </body
   </html>
3 голосов
/ 22 января 2017

Старый вопрос и старое решение, которое я использовал сегодня. При разработке создайте веб-работника со строкой запроса случайного числа, добавленной в рабочий файл:

var worker = new Worker ('path / to / worker / file.js' + '?' + (Math.random () * 1000000));

Не забудьте удалить строку запроса перед вводом кода в эксплуатацию!

2 голосов
/ 23 сентября 2010

Вы пытались использовать HTTP-заголовок Cache-Control: no-cache, чтобы вообще не кэшировать рабочий скрипт?Как правило, вы можете получить желаемое поведение кэширования, установив соответствующие заголовки HTTP .

...