如果修改我的网络工作者脚本并刷新页面时,Web Worker脚本是一个缓存版本。 我有理由相信,这不是我的网络服务器,因为我可以立即加载所有其他文件的最新副本,甚至重新启动Web服务器没有解决的问题。 它只会加载,如果我再重新启动Chrome的网络工作者脚本,这是非常低效的,不用说的最新版本! 它不能修复它,即使我重新启动Chrome。 有什么我可以做的来解决这个问题?
Answer 1:
您的Web服务器确定指定的Web资源如何被缓存是与浏览器尝试尊重网络服务器说,这是确定的缓存这些设置,缓存资源,不缓存东西它说应该被缓存。
如果你想改变这种状况,您有以下选择:
- 手动清除浏览器缓存
- 暂时关闭浏览器缓存。
- 临时更改您的Web服务器上的设置指示浏览器不缓存
- 覆盖只是这一个网页(在某些浏览器移位F5)高速缓存,迫使新的内容重载
- 查询参数添加到你想要的它加载一个新的版本,每次更改Web Worker脚本的URL。
Answer 2:
在我的Linux的Chrome我必须右键点击(或长按)的重载按钮,然后选择“清空缓存并硬性重新加载”,以获取最新版本
Answer 3:
你尝试硬刷新? CTRL-R?
Answer 4:
添加<script src="your_worker_path"></scripts>
到页面的头,迫使缓存更新。
包括在你的工人的代码if(typeof window == "undefined"){...}
以避免它开始在页面重载
Answer 5:
在您的install
情况,之前调用event.waitUntil
补充:
if (self.skipWaiting) { self.skipWaiting(); }
资源
此外,你可以按照这个开发流程:
- 配置您的服务器服务于服务人员的脚本为不可缓存(缓存控制:无缓存)
- 当您更改了服务人员的脚本:
- 关闭所有,但其中一个选项卡指向Web应用程序
- 击中移重载绕过服务人员,以确保剩余的标签不是服务工人的控制下
- 打重装让服务人员的较新版本控制页面。
资源
Answer 6:
您必须关闭它打开这个页面的所有标签。 开放只有一个1然后按Ctrl + Shift + R刷新那么缓存将是清楚的。
Answer 7:
我发现工作是:
- 打开一个新的标签,用URL到SharedWorker脚本,
- 例如,“ https://example.com/javascripts/mySharedWorker.js ”
- 你应该看到,此选项卡包含脚本的缓存版本
- 如果然后按住Shift键刷新该选项卡中,浏览器被强制更新缓存文件
Chrome的关于“转移重载”,“资源”的重装似乎是...变量。
我希望你发现这一点: 铬://检查/#工人 。 你可以在这里终止工作
文章来源: Chrome not loading latest version of web worker script (runs a cached version)