硬重新加载或硬刷新(例如Chrome中的转移重新加载)似乎绕过了服务工作者。
例如,加载服务工作者控制的页面,例如https://airhorner.com/或https://wiki-offline.jakearchibald.com/,将网络设置为"离线"在devtools,然后硬重新加载页面导致破坏"没有互联网连接"页。 (正常的重新加载显示了缓存的页面,如预期的那样。)
有没有办法阻止这种情况,或者在设备离线时使用服务工作者作为后备?
答案 0 :(得分:7)
这是在service worker specification:
中明确调出的行为如果请求是a,navigator.serviceWorker.controller将返回null 强制刷新(shift + refresh)。从中返回的ServiceWorker对象 这个表示同一服务工作者的属性getter是 相同的对象。
所以它不仅仅是一个浏览器实现细节。
如果您认为服务工作者不应该采取这种行为有充分理由,那么最好的办法就是在规范issue tracker中提出您的疑虑。