如何检测离线状态的 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 格式的结果数据,抛出无效数据的错误,并且没有渲染(因为程序不知道它需要加载新页面)
我应该如何将调用代码更新为:
- 检查结果
- 检测到响应是 offline.html 页面而不是 json 数据,并且
- 呈现离线页面而不是继续正常流程?
谢谢,
艾夫纳
解决方案是不使用 window.location.href = ...
替换页面内容,这会强制重新加载页面并更改地址栏。
参见 here
我有一个使用 service worker 的 webapp,它可以检测网络何时离线并为离线页面提供服务。
如果我只是加载主页并且网络处于离线状态,那么离线页面将按预期提供和呈现。
但是我在程序中间处理离线情况时遇到问题,在对网络的提取请求期间,应该 return 结果数据为 json 格式。
在这种情况下,service worker return 是 offline.html 页面,而不是 json 数据。
但是调用网络获取的函数,需要 json 格式的结果数据,抛出无效数据的错误,并且没有渲染(因为程序不知道它需要加载新页面)
我应该如何将调用代码更新为:
- 检查结果
- 检测到响应是 offline.html 页面而不是 json 数据,并且
- 呈现离线页面而不是继续正常流程?
谢谢,
艾夫纳
解决方案是不使用 window.location.href = ...
替换页面内容,这会强制重新加载页面并更改地址栏。
参见 here