从HTML5离线appcache中省略当前页面,但使用缓存资源

时间:2011-11-30 01:36:48

标签: html5 offline-caching manifest.cache cache-manifest html5-appcache

出于性能目的,我希望我的一些网页使用已缓存以供离线使用的资源(图像,CSS等),但不要将页面本身缓存,因为内容将动态生成。 / p>

执行此操作的一种方法是重构我的页面,以便通过AJAX或在LocalStorage中查找内容来加载动态内容。细节可能会有所不同,但从广义上讲,可能就是这样。

如果可能的话,我更愿意找到一种方法来简单地指示浏览器为页面使用缓存资源(同样,图像,CSS等),但不实际缓存(动态生成的)HTML内容本身

有没有办法用HTML5离线appcache做到这一点?我的印象是答案是“不”,因为:

  • 任何包含清单的页面都将被缓存,因此我无法在页面本身中指定缓存的资源。
  • 无法告诉上一页“为其他页面使用脱机资产,但实际上并未在该页面上缓存HTML”。您必须指定页面本身,这意味着将缓存HTML。

我错了吗?似乎可能有一些棘手(或不那么棘手)的方式。现在我已经输入了它,我想知道在appcache清单的NETWORK部分明确地包含页面是否可以解决问题。

3 个答案:

答案 0 :(得分:7)

我的回答是“是”。

我参与了一个网络应用程序,其中列出了清单中的所有必要资源,并将NETWORK部分设置为*

然后,清单仅包含在主登录页面上。因此,所有资源都会在您第一次访问该网站时进行缓存,并且可以进行处理。

简而言之,

  • 您的一个页面必须包含清单,因此将被缓存。

    也许你可以在iframe中加载清单而不是整个页面被缓存,只是一个想法。

  • 列出要在CACHE部分中缓存的所有资源

  • NETWORK部分设置为*

答案 1 :(得分:2)

我很确定答案是否定的。 如果您使用Chrome中的“网络”部分,则会显示从缓存加载的资源以及从服务器加载的资源。我试图如上所述设置appcache,并始终从服务器加载资源。 如果当前页面不在appcache中,那么我会不会在appcache中检查任何资源?

答案 2 :(得分:0)

我发现正在工作的是列出那些你不想在清单的NETWORK:部分的appcache中缓存的文件。对我来说,这意味着将* .asp *添加到网络部分。现在,没有经典的asp文件或aspx文件被缓存。