HTML5缓存不显示html文件本身的缓存

时间:2011-02-18 19:41:43

标签: html5

的index.php:

<html manifest="/cache.manifest">

cache.manifest

CACHE MANIFEST

CACHE:

/img.png
FALLBACK:
/ /offline.html
NETWORK:
*

一切都很好,除了index.php文件本身被提取到缓存(在chrome中测试)。我是否可以禁用指定清单的文件的缓存,以便只缓存img.png?

由于

3 个答案:

答案 0 :(得分:13)

不,引用清单的文件总是自己缓存。来自the spec

  

声明清单(带有manifest属性)的资源将始终从缓存中获取,无论它是否列在缓存中,即使它列在在线白名单命名空间中也是如此。

答案 1 :(得分:1)

我遇到了同样的问题。

我使用iframe加载名为“go_offline.html”的网页 这个页面上有html元素的manifest属性和一些虚拟内容。

使用css隐藏iframe

这样只会缓存虚拟页面,所有请求都会被.manifest文件中的后备页面捕获

答案 2 :(得分:1)

我已经尝试了iframe解决方案,并发现它已成熟但有错误。大多数浏览器都会缓存iframe所在页面无法获取的数据。

而是通过AJAX加载页面内容。基本上有一个空白的html页面,其中包含清单和javascript,它从服务器中提取并添加其内容。这样,只缓存空白html,并始终从服务器更新内容。

将页面转换为此方法可能非常困难,但它可以正常工作。确保适当的javascript在正确的时间运行,可能需要一些解决方案。移动从缓存拉到新的ajax方法时不会被调用的服务器代码。

注意:如果条件在查询字符串中,则不需要从服务器提取条件内容,不同的查询字符串构成单独的缓存