HTML5 缓存 list 和预取

标签 html browser-cache prefetch

我没有完全掌握的一件事是,当缓存 list 在线时是否也充当所有列出文件的预取。

例如,假设我正在访问:

/page1.html

我网站上的每个页面都有相同的声明:

<html manifest="/cache.manifest">

在缓存 list 文件中,我有:

CACHE MANIFEST
/page2.html
/page3.html
/page4.html

所以会发生的是我首先访问/page1.html,当我在线时,我的浏览器也会知道缓存页面 2-4。当我断开连接并访问第 2-4 页时,一切都会正常加载,因为它已经被缓存了。

问题:如果我访问/page1.html,并且仍然在线,然后访问/page2.html,我的浏览器是否仍会请求/page2.html,或者不会对服务器的另一个请求并使用它从/cache.manifest 文件中缓存的内容?本质上就像 firefox 使用的预取链接一样?

最佳答案

嗯,spec说“所有文件”,对于 html 文件没有任何异常(exception),所以我认为它像其他任何文件一样适用于 html 文件,它是从缓存中获取的,而不是服务器。但是,我没有进行任何测试来证实这一点。我会做以下事情:

创建以下缓存 list 文件:

CACHE MANIFEST
/page1.html
/page2.html
/page3.html
/page4.html

将其包含在四个缓存 list 文件中的每一个中。然后:

  1. 访问page1.html
  2. 编辑 page2.html 使其与您访问 page1.html 之前不同
  3. 访问page2.html
  4. 查看您获得的是哪个版本。

请确保您在所有浏览器上都尝试过。我很想看看您的结果。

关于HTML5 缓存 list 和预取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143319/

相关文章:

c - 为 x86-64 预取数据到缓存

jquery - 表格后的文本(不适合放在 div 中)出现在表格中

html - CSS 填充仅在元素 float 时才能正确显示

javascript - 如何在客户端浏览器中更新 javascript 文件?

Tapestry 中缓存清除的 javascript 和 CSS 版本控制

python - 如何在 tensorflow 中处理不同的队列批量大小和馈送值批量大小?

html - 为什么 "div"不会随着其中的内容展开?

html - 试图创建一个可滚动的单元格?

angularjs - angularjs 中是否默认启用缓存?

c - 读取或写入预取之间的区别