首页 文章

如何防止硬重载绕过服务工作者?

提问于
浏览
4

硬重新加载或硬刷新(例如,Chrome中的转移重新加载)似乎绕过服务工作者 .

例如,加载服务工作者控制的页面,如https://airhorner.com/https://wiki-offline.jakearchibald.com/,在devtools中将网络设置为"offline",然后硬重新加载页面会导致页面损坏"there is no internet connection" . (正常重新加载显示缓存页面,如预期的那样 . )

有没有办法防止这种情况,或者在设备脱机时使用服务工作者作为后备?

1 回答

  • 7

    这是行为被明确地作为service worker specification的一部分调出:

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

    所以它不仅仅是一个浏览器实现细节 .

    如果你觉得有一个强有力的理由,为什么服务工作者不应该't behave that way, the best approach would be to bring up your concerns in the spec' issue tracker .

相关问题