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

时间:2010-09-23 04:47:03

标签: html5 web-worker

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

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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

您是否尝试过使用Cache-Control: no-cache HTTP标头来避免缓存工作程序脚本?您通常可以通过setting the appropriate HTTP headers获得所需的缓存行为。