【问题标题】:Does HTML 5 application cache have any benefit for online apps?HTML 5 应用程序缓存对在线应用程序有什么好处吗?
【发布时间】:2011-06-14 18:45:02
【问题描述】:

HTML 5 应用程序(离线)缓存是否对在线/连接的应用程序有任何好处?

我的页面需要联机才能运行,并且作为 iOS 应用程序的一部分专门加载到 UIWebView 中。此页面正在加载一些大型依赖项,我想知道是否可以使用 HTML 5 应用程序缓存来存储这些依赖项以避免依赖常规浏览器缓存。

所以我想我的问题是:

当 HTML 5 页面在线时,如果 HTML5 离线缓存中已经存在依赖项,它是否使用离线缓存?

【问题讨论】:

  • 只是一个建议。该应用程序将被拒绝,因为它只是将网站包装到 UIWebView 中。编辑_:没关系,给自己建议,更仔细地阅读问题:)

标签: html mobile-safari


【解决方案1】:

是的,HTML5 离线应用程序缓存与在线应用程序一起使用,让您可以从无限的本地缓存中受益。例如,请参阅http://www.w3.org/TR/html5/offline.html#concept-appcache-onlinewhitelist,了解将不会缓存的特定 URL 列入白名单的能力。

【讨论】:

    【解决方案2】:

    您可能知道,离线网络应用使用缓存清单。在此文件的CACHE: 部分中声明的任何资源都将存储在离线缓存中,因此可以处理此类内容的用户代理将始终从那里提取资源——因此理论上会带来性能优势。

    相反,缓存清单的NETWORK: 部分中特别列出的任何页面/资源不会在本地缓存(离线时抛出错误),并且应用需要连接才能加载它们.

    必须权衡使用离线缓存的好处与您在提供(和更新)清单缓存文件本身时可能产生的额外维护,但是嘿。

    【讨论】:

    • 我已经使用清单文件为一些文件实现了本地存储的使用。我使用了 Firefox,根据 Firefox 中的“网络”选项卡,它似乎要到我的服务器上来获取本地缓存中的文件。因此,要么网络选项卡在撒谎,要么我在线这一事实并没有从本地存储中受益。
    • 那么简单的测试就是让您的应用离线,然后看看会发生什么——它要么工作要么不工作。我在 Safari 和 Chrome 而不是 Firefox 中测试离线应用程序,因此无法在 Firebug 网络选项卡上发表评论,但您确定它正在发出 network 请求吗?请记住,在离线应用程序中,页面仍由其完整 URL 引用,即原始服务器名称仍将位于浏览器地址栏中,即使该服务器实际上并未被使用(因为您重新离线)。
    • 使应用程序脱机确实有效,但这并不能证明当我在线时它是从本地存储中提取的。我只是想确定当我在线时本地存储有好处。
    • 对不起,我不够清楚:当您在 Firefox 中离线时,当您浏览网站时,net 选项卡是否仍显示活动?即使您实际上没有连接,它也有可能会,因为使用了相同的 URL。如果您确实看到了这样的活动,那么这意味着 on-line 时的相同活动并不意味着它忽略了本地缓存(您可以只嗅探网络为 100 % 当然)。鉴于服务器在联机时应该返回 200,无论如何这些性能考虑都非常接近。
    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2015-09-30
    • 2011-07-29
    • 2013-11-06
    • 1970-01-01
    相关资源
    最近更新 更多