根据设计,如果客户端设备离线或客户端设备在线且服务器可访问,则 HTML5 离线支持 (AppCache) 有效。之后,当设备无法访问互联网时,我缓存了应用程序并在浏览器中重新打开它(刷新它),浏览器从 AppCache 加载应用程序。在这种情况下,浏览器不会尝试获取 appcache 清单(它知道我们处于离线状态)。
但是让我们考虑一下我的设备未离线的情况。它仍然有互联网连接。但是我的服务器宕机了。这可能有很多不同的原因(硬件故障、AppPool 停止、IIS 限制、DNS 错误等)。在这种情况下,当我在浏览器中打开缓存的应用程序时,它会尝试获取 appcache 清单并得到 404 错误(未找到)。之后,浏览器会清除应用程序的 AppCache!所以在下一次运行时,它不会从 AppCache 加载它并显示 404 错误“页面”。不再需要离线工作。
离线模式的功能取决于无法访问服务器的原因,这对我来说看起来很奇怪。作为用户,我为什么要关心(没有互联网连接或服务器已关闭)?
所以我的问题是:当设备在线但无法访问其服务器时,是否有人知道使应用程序工作的任何方法?
理想情况下,我应该能够捕获 window.applicationCache 的错误事件并告诉它“没关系,请继续使用缓存,不要废弃它”。