当前位置: 首页 > 知识库问答 >
问题:

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

曾英睿
2023-03-14

硬重装或硬刷新(例如,Chrome中的移位重装)似乎绕过了服务辅助角色。

例如,加载一个服务人员控制的页面,如https://airhorner.com/或https://wiki-offline.jakearchibald.com/,在开发工具中将网络设置为“离线”,然后重新加载页面会导致一个破碎的“没有互联网连接”页面。正常的重新加载会显示缓存的页面。)

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

共有1个答案

慕承恩
2023-03-14

这是作为Service Worker规范的一部分显式调用的行为:

navigator.serviceWorker.controller返回null,如果请求是强制刷新(移位刷新)。从这个属性getter返回的ServiceWorker对象表示相同的Service Worker对象是相同的对象。

所以这不仅仅是浏览器实现的细节。

如果您觉得服务人员不应该这样做有充分的理由,那么最好的方法是在规范的问题跟踪程序中提出您的问题。

 类似资料:
  • 我在我的应用程序中使用导航栏,每次我选择一个项目时,它都会加载一个片段。 我能够使用相同的文本字段和按钮保存片段的状态,但有一个片段可以加载地图、添加标记、集群并执行。 每次我转到另一个菜单项并返回时,它都会重新加载所有内容,例如AsyncTask、Cluster、Markers。我如何停止此片段以不再重新创建地图并在返回时保存状态: Udate 1:我更新了代码,但问题仍然存在 主要活动: 主片

  • 如图是一个简化的下单流程,首先是提交订单,然后是支付。支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互,支付成功以后,异步通知支付中心,支付中心更新自身支付订单状态,再通知业务应用,各业务再更新各自订单状态。 这个过程中经常可能遇到的问题是掉单,无论是超时未收到回调通知也好,还是程序自身报错也好,总之由于各种各样的原因,没有如期收到通知并正确的处理后续

  • 如图是一个简化的下单流程,首先是提交订单,然后是支付。支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互,支付成功以后,异步通知支付中心,支付中心更新自身支付订单状态,再通知业务应用,各业务再更新各自订单状态。 这个过程中经常可能遇到的问题是掉单,无论是超时未收到回调通知也好,还是程序自身报错也好,总之由于各种各样的原因,没有如期收到通知并正确的处理后续

  • 问题内容: 旋转屏幕时,WebView会重新加载整个页面。我无法使用此功能,因为我的某些内容包含动态/随机材料。当前,屏幕旋转时会从loadUrl()方法重新加载原始URL。 知道我的代码有什么问题吗? MainActivity.java AndroidManifest.xml 问题答案: 我认为主要问题是您调用了web.loadUrl(webURL); 当saveInstanceState!=

  • 情况: 在我的网站上。com/game,我在 在我的服务器上,的最大值为。 问题: 。 问题是,每当用户访问,它显示空页面,不再执行任何操作。我无法让客户端获取新的。 如何让客户端获取新的?

  • 我是Java编程的初学者。我是在编写一个基于prime checker的程序时遇到这个问题的。已经明确指出,; 编辑器中锁定的代码将使用一个或多个整数参数调用checkPrime方法。您应该以这样的方式编写checkPrime方法:代码只打印素数。请仔细阅读编辑器中给出的代码。也请不要使用方法重载! 我想知道下面的评论行w. r. t.下面的Java程序之后的声明的作用是什么? 它们在锁定代码中的