【问题标题】:HTML5 Cache manifest file itself is not cached, and called at each resource loadHTML5 缓存清单文件本身不被缓存,并在每次资源加载时调用
【发布时间】:2010-03-09 20:56:21
【问题描述】:

我们有一个在 iPhone 上运行的网络应用程序。
清单文件没问题,资源(html、css、js)被正确缓存。
页面位于主屏幕中。

问题在于,当页面从缓存中加载资源时,还会对服务器进行 GET 调用以读取缓存清单文件。
服务器配置为发送正确的标头(max-age =31536000; public, etc...) 并很好地缓存除缓存清单本身之外的所有其他文件。

这是正常行为吗?由于该调用,每个资源负载看起来都有轻微的延迟。
知道这些多次调用是否可以获得状态 304 甚至更好地避免?

【问题讨论】:

    标签: javascript iphone caching html manifest


    【解决方案1】:

    您应该check the spec for details,但是定期检查清单文件是否有更新(每个会话,或每小时或...)并且不遵循 http-header-cache 指令是合乎逻辑的,但是如果对缓存中的文件的每个请求都发生这种情况,那将是不合逻辑的。

    所以这实际上可能是您的代码或移动 safari 中的错误?

    规范提到了对 http 304 响应代码的支持,因此确保发送确实是一个解决方案。

    【讨论】:

    • 感谢您的回答。我正在通过 iframe 加载资源。每次加载 iframe 时,都会调用缓存清单,XHR 没有这个问题。 --> 不再加载 iframe ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2012-04-07
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多