Javascript 如何防止硬重新加载绕过服务人员?

Javascript 如何防止硬重新加载绕过服务人员?,javascript,service-worker,Javascript,Service Worker,硬重新加载或硬刷新(例如,Chrome中的轮班重新加载)似乎绕过了服务人员 例如,加载服务工作者控制的页面(如或),在devtools中将网络设置为“脱机”,然后硬重新加载该页面会导致“没有internet连接”页面断开。(如预期的那样,定期重新加载会显示缓存的页面。) 有没有办法防止这种情况发生,或者在设备脱机的情况下使用服务工作程序作为后备措施?这是一种明确的行为,作为以下操作的一部分: 如果请求为空,则navigator.serviceWorker.controller返回null 强制刷

硬重新加载或硬刷新(例如,Chrome中的轮班重新加载)似乎绕过了服务人员

例如,加载服务工作者控制的页面(如或),在devtools中将网络设置为“脱机”,然后硬重新加载该页面会导致“没有internet连接”页面断开。(如预期的那样,定期重新加载会显示缓存的页面。)


有没有办法防止这种情况发生,或者在设备脱机的情况下使用服务工作程序作为后备措施?

这是一种明确的行为,作为以下操作的一部分:

如果请求为空,则navigator.serviceWorker.controller返回null 强制刷新(shift+刷新)。从返回的ServiceWorker对象 表示同一服务工作者的此属性getter是 相同的对象

因此,这不仅仅是一个浏览器实现细节

如果您觉得服务人员不应该这样做有充分的理由,那么最好的方法就是在规范中提出您的担忧