我注意到即使您强制页面重新加载(SHIFT+F5 等),大多数浏览器(尤其是 Chrome)似乎也会缓存 Web Worker 脚本。我发现强制更新缓存的唯一可靠方法是将工作脚本的路径键入地址栏中并强制单独重新加载。
显然,在尝试开发任何东西时,这是一种皇家痛苦。有谁知道一种可靠的方法来阻止浏览器缓存工作脚本或强制它以简单的方式重新加载它们?
我注意到即使您强制页面重新加载(SHIFT+F5 等),大多数浏览器(尤其是 Chrome)似乎也会缓存 Web Worker 脚本。我发现强制更新缓存的唯一可靠方法是将工作脚本的路径键入地址栏中并强制单独重新加载。
显然,在尝试开发任何东西时,这是一种皇家痛苦。有谁知道一种可靠的方法来阻止浏览器缓存工作脚本或强制它以简单的方式重新加载它们?
我今天使用的一个老问题和一个老解决方案。开发时,使用添加到工作文件的随机数查询字符串创建 Web 工作人员:
var worker = new Worker('path/to/worker/file.js' + '?' + Math.random());
请记住在代码投入生产之前删除查询字符串!
如果您无权访问服务器配置文件,或者您的元标记不被尊重,一个快速的解决方法是包含“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>
您是否尝试过使用Cache-Control: no-cache
HTTP 标头来避免缓存工作脚本?您通常可以通过设置适当的 HTTP 标头来获得所需的缓存行为。