如果我编辑我的 web worker 脚本并刷新页面,web worker 脚本是一个缓存版本。我有理由相信它不是我的网络服务器,因为我可以立即加载所有其他文件的最新副本,即使重新启动网络服务器也不能解决问题。如果我重新启动 chrome,它只会加载最新版本的 web worker 脚本,这是非常低效的,不用说!即使我重新启动 chrome,它也无法修复它。我能做些什么来解决这个问题吗?
问问题
6595 次
7 回答
14
在我的 Linux Chrome 上,我必须右键单击(或长按)重新加载按钮并选择“Empty Cache and Hard Reload”以获取最新版本
于 2012-11-17T08:09:48.417 回答
7
您的 Web 服务器确定给定 Web 资源的可缓存程度,并且浏览器尝试尊重这些设置,缓存 Web 服务器说可以缓存的资源,而不是缓存它说不应该缓存的东西。
如果你想改变它,你有以下选择:
- 手动清除浏览器缓存
- 暂时关闭浏览器缓存。
- 临时更改 Web 服务器上的设置以指示浏览器不要缓存
- 仅覆盖这个网页的缓存(某些浏览器中的 shift-F5)以强制重新加载新内容
- 将查询参数添加到您每次希望它加载新版本时更改的 Web 工作者脚本的 URL。
于 2012-08-25T18:01:21.610 回答
3
您是否尝试过努力刷新?Ctrl-R?
于 2012-08-25T17:54:45.560 回答
1
添加<script src="your_worker_path"></scripts>
到您的页头以强制缓存更新。
包括您的工作人员的代码,if(typeof window == "undefined"){...}
以避免它在页面重新加载时开始
于 2015-06-11T09:59:21.910 回答
0
在您的install
事件中,在调用event.waitUntil
添加之前:
if (self.skipWaiting) { self.skipWaiting(); }
此外,您可以遵循以下开发工作流程:
- 配置您的服务器以将您的 Service Worker 脚本提供为不可缓存(缓存控制:无缓存)
- 在您对服务工作者脚本进行更改后:
- 关闭所有指向您的 Web 应用程序的选项卡,但只有一个选项卡
- 点击 shift-reload 绕过服务人员,以确保剩余的选项卡不受服务人员的控制
- 点击重新加载,让更新版本的 Service Worker 控制页面。
于 2015-06-06T17:37:49.540 回答
0
您必须关闭所有打开此页面的选项卡。只打开一个 1 然后 Ctrl + Shift + R 刷新然后缓存就会被清除。
于 2017-03-11T08:05:29.820 回答
0
我发现的作品是:
- 打开一个新选项卡,其中包含 SharedWorker 脚本的 URL,
- 您应该会看到此选项卡包含脚本的缓存版本
- 如果您然后 Shift-Reload该选项卡,浏览器将被迫更新缓存文件
Chrome 在“shift-reload”上重新加载“资源”似乎是……变量。
我希望你找到了这个:chrome://inspect/#workers。您可以在此处终止工作人员
于 2019-05-23T09:13:20.580 回答