Chrome中无法加载最新版本的Web Worker脚本(运行缓存版本)(Chrome not lo

2019-07-31 04:05发布

如果修改我的网络工作者脚本并刷新页面时,Web Worker脚本是一个缓存版本。 我有理由相信,这不是我的网络服务器,因为我可以立即加载所有其他文件的最新副本,甚至重新启动Web服务器没有解决的问题。 它只会加载,如果我再重新启动Chrome的网络工作者脚本,这是非常低效的,不用说的最新版本! 它不能修复它,即使我重新启动Chrome。 有什么我可以做的来解决这个问题?

Answer 1:

您的Web服务器确定指定的Web资源如何被缓存是与浏览器尝试尊重网络服务器说,这是确定的缓存这些设置,缓存资源,不缓存东西它说应该被缓存。

如果你想改变这种状况,您有以下选择:

  1. 手动清除浏览器缓存
  2. 暂时关闭浏览器缓存。
  3. 临时更改您的Web服务器上的设置指示浏览器不缓存
  4. 覆盖只是这一个网页(在某些浏览器移位F5)高速缓存,迫使新的内容重载
  5. 查询参数添加到你想要的它加载一个新的版本,每次更改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(); }

资源

此外,你可以按照这个开发流程:

  1. 配置您的服务器服务于服务人员的脚本为不可缓存(缓存控制:无缓存)
  2. 当您更改了服务人员的脚本:
    1. 关闭所有,但其中一个选项卡指向Web应用程序
    2. 击中移重载绕过服务人员,以确保剩余的标签不是服务工人的控制下
    3. 打重装让服务人员的较新版本控制页面。

资源



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)