【问题标题】:How to prevent hard reloads from bypassing the service worker?如何防止硬重载绕过服务人员?
【发布时间】:2016-02-25 23:44:46
【问题描述】:

硬重新加载或硬刷新(例如,Chrome 中的 shift-reload)似乎绕过了 service worker。

例如,加载服务工作者控制的页面,如https://airhorner.com/https://wiki-offline.jakearchibald.com/,在 devtools 中将网络设置为“离线”,然后硬重新加载页面会导致“没有互联网连接”中断页。 (如预期的那样,定期重新加载会显示缓存页面。)

有没有办法防止这种情况发生,或者在设备离线时使用 service worker 作为后备?

【问题讨论】:

    标签: javascript service-worker


    【解决方案1】:

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

    navigator.serviceWorker.controller 如果请求是一个 强制刷新(shift+refresh)。从返回的 ServiceWorker 对象 代表同一个 service worker 的这个属性 getter 是 相同的对象。

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

    如果您认为服务人员不应该这样做有充分的理由,最好的方法是在规范的issue tracker 中提出您的疑虑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2020-07-25
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多