Chrome未加载最新版本的Web worker脚本(运行缓存版本)

时间:2012-08-25 17:44:07

标签: javascript google-chrome refresh web-worker

如果我编辑我的Web worker脚本并刷新页面,则Web worker脚本是一个缓存版本。我有理由相信它不是我的网络服务器,因为我可以立即加载所有其他文件的最新副本,甚至重新启动网络服务器也无法解决问题。 如果我重新启动chrome,它只会加载最新版本的web worker脚本,这是非常低效的,不用说了!即使重新启动chrome也无法修复它。我能做些什么来解决这个问题吗?

7 个答案:

答案 0 :(得分:10)

在我的Linux Chrome上,我必须右键单击(或长按)重新加载按钮并选择“Empty Cache and Hard Reload”以获取最新版本

答案 1 :(得分:7)

您的Web服务器确定给定Web资源的可缓存性以及浏览器是否尝试遵守这些设置,缓存Web服务器表示可以缓存的资源,而不是缓存它不应缓存的内容。

如果您想更改它,您可以选择以下选项:

  1. 手动清除浏览器缓存
  2. 暂时关闭浏览器缓存。
  3. 暂时更改Web服务器上的设置以指示浏览器不缓存
  4. 覆盖此一个网页的缓存(某些浏览器中的shift-F5)以强制重新加载新内容
  5. 将查询参数添加到每次要加载新版本时更改的Web worker脚本的URL。

答案 2 :(得分:3)

你尝试过刷新吗? CTRL-R?

答案 3 :(得分:1)

<script src="your_worker_path"></scripts>添加到页面头以强制缓存更新 在if(typeof window == "undefined"){...}中包含您的工作人员的代码,以避免从页面重新加载

开始

答案 4 :(得分:0)

install事件中,在致电event.waitUntil之前添加:

if (self.skipWaiting) { self.skipWaiting(); }

Source

此外,您可以按照此开发工作流程进行操作:

  1. 将服务器配置为不可缓存的服务工作者脚本(缓存控制:无缓存)
  2. 对服务工作者脚本进行更改后:
    1. 关闭除一个标签之外的所有选项卡 到您的网络应用程序
    2. 点击shift-reload以绕过服务工作者,以确保剩余的标签不受控制 服务人员
    3. 点击重新加载让新版本的 Service Worker控制页面。
  3. Source

答案 5 :(得分:0)

您必须关闭打开此页面的所有标签。只打开1然后按Ctrl + Shift + R刷新,然后缓存就会清除。

答案 6 :(得分:0)

我发现有效的是:

  • 打开一个新标签,其中包含指向SharedWorker脚本的URL,
  • 您应该看到此选项卡包含脚本的缓存版本
  • 如果您随后Shift-重新加载那个标签,浏览器将被迫更新缓存文件

Chrome在“ shift-reload”上重新加载“资源”似乎是...可变的。


我希望您找到了:chrome://inspect/#workers。您可以在此处终止工作人员