Shr*_*ike 6 html5 offlineapps html5-appcache
按设计HTML5脱机支持(AppCache)可在客户端设备脱机或客户端设备联机且服务器可访问时工作.之后我缓存了应用程序并在浏览器(刷新它)中重新打开它,当设备无法访问互联网时,浏览器从AppCache加载应用程序.在这种情况下,浏览器不会尝试获取appcache清单(它知道我们处于脱机状态).
但是让我们考虑一下我的设备没有脱机的情况.它仍然有互联网连接.但是我的服务器坏了.可能有许多不同的原因(硬件故障,AppPool停止,IIS限制,DNS错误等).在这种情况下,当我在浏览器中打开缓存的应用程序时,它将尝试获取appcache清单并获得404错误(未找到).然后浏览器清除应用程序的AppCache!因此,在下一次运行时,它不会从AppCache加载它并显示404错误"page".没有更多的离线工作.
对我来说,离线模式功能取决于服务器无法访问的原因看起来很奇怪.我为什么要关心用户(没有互联网连接或服务器关闭)?
所以我的问题是:做任何人知道什么办法可以使应用程序在工作时的设备是在线,但它的服务器不可用?
理想情况下,我应该能够捕获window.applicationCache的错误事件并告诉它"它没关系,请继续使用缓存,不要废弃它".
根据应用程序缓存规范,这是不可能的:
否则,如果以其他方式获取清单失败(例如,服务器返回另一个 4xx 或 5xx 响应或等效响应,或者存在 DNS 错误,或者连接超时,或者用户取消下载,或者清单解析器失败)检查魔术签名时),或者如果服务器返回重定向,或者如果资源使用除 text/cache-manifest 之外的 MIME 类型进行标记,则运行缓存失败步骤。