HTML5缓存清单:回退部分&;网络*

HTML5缓存清单:回退部分&;网络*,html,cache-manifest,Html,Cache Manifest,从 我不明白从URL给出的这段代码到底是做什么的。回退部分是否意味着当找不到任何内容时,显示offline.html页面 然后网络:所有资源都将被缓存?它还说 它使用常见的CSS、JavaScript和 每一页上的图像。每一个 需要列出资源 显式地在缓存中 这似乎与网络冲突:其中似乎表示缓存所有内容?缓存清单中有三种类型的标题:缓存、网络和回退。任何不在标题下的内容都隐式地设置在缓存下。各部分的说明: 缓存:将缓存此标题下的文件 网络:此标题下的文件需要internet连接,因此不会被缓存 回退

我不明白从URL给出的这段代码到底是做什么的。回退部分是否意味着当找不到任何内容时,显示
offline.html
页面

然后
网络:
所有资源都将被缓存?它还说

它使用常见的CSS、JavaScript和 每一页上的图像。每一个 需要列出资源 显式地在
缓存中


这似乎与
网络冲突:
其中似乎表示缓存所有内容?

缓存清单中有三种类型的标题:缓存、网络和回退。任何不在标题下的内容都隐式地设置在缓存下。各部分的说明:

缓存:将缓存此标题下的文件

网络:此标题下的文件需要internet连接,因此不会被缓存

回退:与此标题下的模式匹配的文件(例如匹配所有文件的模式“/”)未被缓存,将显示一个回退文件

关于Dive into HTML 5的代码块,下面是对“网络:*”部分的解释:

这意味着,当你浏览的时候 这是一个假设的脱机启用 维基百科在线,您的浏览器将 获取图像、视频和其他 嵌入式资源正常,即使 他们在不同的领域。(本 在大型网站中很常见,即使 它们不是离线网络的一部分 生成application.HTML页面 并在本地提供服务,而图像和 视频从CDN上提供 另一个域。)没有此通配符 flag,我们假设的脱机已启用 维基百科会在 你是在线的,特别是它 不会加载任何外部托管的 图片或视频

以下引述:

它使用常见的CSS、JavaScript和 每一页上的图像。每一个 需要列出资源 在缓存中显式地


意味着您必须在缓存标题下的清单中包含所有必要的CSS、Javascript和图像文件。它与“NETWORK:*”不冲突,因为NETWORK标题并不表示“缓存所有内容”。实际上,它的意思正好相反:网络标题下的所有内容都需要internet连接,不应缓存。

我发现了更多关于回退的有用信息:

经过一点实验,我尝试了各种方法,包括FALLBACK:中的文件是否应该出现在缓存或网络部分。答案似乎是否定的

例如。。。 退路: 注册-grait.png脱机-grait-1.png 注册-scape.png脱机-scape-1.png

我最近在我的一个微站点上指定了这一点。其目的是在联机时显示Signup-png文件,在脱机时显示offline-png文件。这很有效。特别是,每行左侧的文件都隐式地显示在网络部分,站点将始终尝试将其联机。它们也不能添加到网络部分,否则它似乎会覆盖回退中的内容。 另外,令人高兴的是,右侧的文件隐式地添加到CACHE:部分,因此即使它们最初没有被使用,它们也会在第一次加载时被缓存,而不必显式地将它们添加到缓存中:尽管您也可以在需要时将它们添加到缓存中。这没什么区别

对于这种配置,查看Web服务器日志,我发现每次刷新页面时,apache都会根据清单文件和该版本页面所需的注册png文件(有一个CSS媒体选择器,根据页面大小确定哪个文件)记录304。所以它总是正确地检查注册png文件以及通常的清单检查,这正是我想要的

为了彻底起见,我尝试查看根文件是否也需要在CACHE:部分中。事实证明不是这样的!如果顶级文件是index.html,并且在其html标记中指定了清单文件,那么清单文件不需要在任何地方包含index.html,而是隐式缓存的

我很好奇应用程序缓存可以扩展多远。可以包含链接到iFrame或在iFrame中的其他html文件吗?或者这些都需要有各自独立的清单文件吗?有人想评论吗

关于格式的旁白,不要犯我犯的错误,那就是。。。 网络 file1.js

缺少冒号会导致它完全崩溃,认为网络本身就是一种资源

一定是。。。 网络:
js

感谢您的试验和回来留下反馈!!我正准备开始做同样的事情,因为我不知道回退中的东西是如何缓存的,如果没有在某个地方明确指定的话
CACHE MANIFEST
FALLBACK:
/ /offline.html
NETWORK:
*