通过设计HTML5脱机支持(AppCache)在客户端设备脱机或客户端设备联机且服务器可访问时起作用。之后,当设备无法访问互联网时,我缓存了该应用程序并在浏览器中重新打开了它(刷新它),浏览器从AppCache加载该应用程序。在这种情况下,浏览器不会尝试来获取应用程序缓存 list (它知道我们处于离线状态)。
但是,让我们考虑一下我的设备未处于离线状态的情况。它仍然具有互联网连接。但是我的服务器坏了。可能有许多不同的原因(硬件故障,AppPool停止,IIS节流,DNS错误等等)。在这种情况下,当我在浏览器中打开一个缓存的应用程序时,它将尝试获取appcache list 并得到404错误(未找到)。之后,浏览器将清除该应用程序的AppCache!因此,在下次运行时,它将不会从AppCache加载它并显示404错误“页面”。不再进行离线工作。
对于我来说,脱机模式的功能取决于无法访问服务器的原因,这对我来说很奇怪。我为什么要以用户身份关心(没有互联网连接或服务器已关闭)?
所以我的问题是:当设备在线但服务器无法访问时,有人知道使应用程序正常工作的任何方法吗?
理想情况下,我应该能够捕获window.applicationCache的错误事件并告诉它“可以,请继续使用缓存,不要过时”。
最佳答案
每个application-cache specification这是不可能的:
关于HTML5 AppCache : how to implement offline mode if server isn't accessible but network is accessible,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14506532/