如何检测离线状态的 service_worker 响应,并呈现离线页面而不是继续程序的常规流程?

How to detect service_worker response for offline state, and render the offline page instead of continuing the regular flow of the program?


我有一个使用 service worker 的 webapp,它可以检测网络何时离线并为离线页面提供服务。
如果我只是加载主页并且网络处于离线状态,那么离线页面将按预期提供和呈现。

但是我在程序中间处理离线情况时遇到问题,在对网络的提取请求期间,应该 return 结果数据为 json 格式。
在这种情况下,service worker return 是 offline.html 页面,而不是 json 数据。
但是调用网络获取的函数,需要 json 格式的结果数据,抛出无效数据的错误,并且没有渲染(因为程序不知道它需要加载新页面)

我应该如何将调用代码更新为:

谢谢,
艾夫纳

解决方案是不使用 window.location.href = ... 替换页面内容,这会强制重新加载页面并更改地址栏。
参见 here