强制重新加载/阻止Web Workers的缓存

Toj*_*oji 5 html5 web-worker

我注意到,即使强制页面重新加载(SHIFT + F5等),大多数浏览器(特别是Chrome)似乎都会缓存Web工作程序脚本.我发现强制缓存更新的唯一可靠方法是将工作脚本的路径键入地址栏并强制单独重新加载.

显然,在尝试开发任何东西时,这都是一种巨大的痛苦.有没有人知道一种可靠的方法来阻止浏览器缓存工作者脚本或强制它以简单的方式重新加载它们?

小智 5

如果您无权访问服务器配置文件,或者您的元标记未被遵守,则快速解决方法是包含"web worker脚本"以使用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>
Run Code Online (Sandbox Code Playgroud)


Kal*_*Rik 5

一个老问题,以及我今天使用的一个旧解决方案。开发时,创建 web worker,将随机数查询字符串添加到 worker 文件中:

var worker = new Worker('path/to/worker/file.js' + '?' + Math.random());
Run Code Online (Sandbox Code Playgroud)

请记住在代码投入生产之前删除查询字符串!


Bri*_*ell 3

您是否尝试过使用Cache-Control: no-cacheHTTP 标头来避免缓存工作脚本?通常,您可以通过设置适当的 HTTP 标头来获得所需的缓存行为。