为用户提供离线HTML5 web应用程序的访问权限

Providing users access to offline HTML5 web applications

本文关键字:应用程序 访问 访问权 权限 web HTML5 用户 离线      更新时间:2023-09-26

我必须构建一个在远程/现场/离线环境中完全可用的web应用程序。看起来HTML5支持具有相当复杂的缓存机制的"离线模式"。

几个问题:

  1. 除了缓存JS/CSS/image资源之外,我还需要一种方法来存根/模拟/重新路由页面"下载"后进行的async/ajax调用。例如,在"在线模式"中,如果用户单击按钮,通常会向服务器发送HTTPPOST。但在"离线模式"下,我需要它以某种方式将HTTPPOST的存根/模拟版本存储在本地某个地方。然后,当用户恢复"在线模式"时,该应用程序将足够智能,可以查询缓存并发出请求这可能吗如果是,这个机制被称为什么,它在哪里被记录
  2. 外行最终用户如何找到离线HTML5应用程序?!?他们会知道在"在线模式"下转到http://www.myapp.example.com,但在"离线"时,他们通常需要转到以file:///some/path/on/their/system/to/the/cached/offline/app开头的某个浏览器URL,对吧?HTML5有什么东西可以让它更"用户友好"吗?例如,在离线模式下,用户是否仍然可以访问正常的在线URL(myapp.example.com),但浏览器会自动检测到网络中断,并将缓存中的所有内容都提供回来?或者类似的东西

好的,所以我实际上没有在diveintohtml5文章中阅读这些问题的答案,而是在它引用的链接中:

  1. 这篇链接文章描述了如何在JS中进行检查,无论您当前是在线还是在缓存页面上工作。现在要充分利用这一点,您应该有两个版本的API代码(用于获取服务器资源):

    1. 一个用于在线使用,带有HTTPget/post,然后使用indexdb在本地存储数据
    2. 一个用于离线使用,它直接进入您的indexdb或回退到不可用的资源。您可能还应该在此处检查用户是否已重新联机,并切换到其他方法
  2. 一旦用户访问了带有缓存清单的页面,并且您的浏览器知道如何处理它,下次您尝试访问它时,如果您处于脱机状态,则浏览器将为您完成所有操作:https://html.spec.whatwg.org/multipage/browsers.html#offline,http://googlecode.blogspot.ie/2009/05/gmail-for-mobile-html5-series-part-3.html