gpt4 book ai didi

javascript - 为用户提供对离线 HTML5 网络应用程序的访问

转载 作者:行者123 更新时间:2023-11-28 01:41:01 25 4
gpt4 key购买 nike

我必须构建一个在远程/现场/离线环境中完全可用的 Web 应用程序它看起来像 HTML5 supports an "offline mode"具有相当复杂的缓存机制。

几个问题:

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

最佳答案

好吧,事实上我不是在 diveintohtml5 文章而是在它引用的链接中阅读了这些问题的答案:

  1. 这个 linked article 描述了如何在 JS 中检查您当前是在线还是在缓存页面上工作。现在要充分利用它,您应该有两个版本的 API 代码(您用来获取服务器资源的代码):

    1. 一个用于在线使用,使用 HTTP get/post,然后使用 indexdb 在本地存储数据
    2. 一个供离线使用,直接转到您的 indexdb 或回退到不可用的资源。您或许还应该在此处检查用户是否重新在线并切换到替代方法。
  2. 一旦用户访问了带有缓存 list 的页面,并且您的浏览器知道如何处理它,下次您尝试访问它并且您处于离线状态时,浏览器会为您完成所有操作:https://html.spec.whatwg.org/multipage/browsers.html#offlinehttp://googlecode.blogspot.ie/2009/05/gmail-for-mobile-html5-series-part-3.html

关于javascript - 为用户提供对离线 HTML5 网络应用程序的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com