Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5缓存清单和预取_Html_Browser Cache_Prefetch - Fatal编程技术网

HTML5缓存清单和预取

HTML5缓存清单和预取,html,browser-cache,prefetch,Html,Browser Cache,Prefetch,有一件事我没有完全理解,那就是缓存清单在所有列出的文件联机时是否也充当预取 例如,假设我正在访问: /page1.html 我网站上的每个页面都有相同的声明: <html manifest="/cache.manifest"> 因此,我将首先访问/page1.html,当我在线时,我的浏览器将知道如何缓存第2-4页。当我断开连接并访问第2-4页时,一切都会正常加载,因为它已经被缓存了 问题:如果我访问/page1.html,并且仍然联机,并且访问/page2.html,我的浏览器

有一件事我没有完全理解,那就是缓存清单在所有列出的文件联机时是否也充当预取

例如,假设我正在访问:

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

<html manifest="/cache.manifest">
因此,我将首先访问/page1.html,当我在线时,我的浏览器将知道如何缓存第2-4页。当我断开连接并访问第2-4页时,一切都会正常加载,因为它已经被缓存了


问题:如果我访问/page1.html,并且仍然联机,并且访问/page2.html,我的浏览器是否仍会请求/page2.html,或者不会向服务器发出另一个请求并使用它从/cache.manifest文件缓存的内容?基本上就像firefox使用的预回迁链接一样?

我认为它从清单文件中获取,即使您在线:)。你不能上传一个文件然后导航到页面来试试吗?

嗯,上面说的“所有文件”,html文件没有任何例外,所以我想它对html文件也一样有效,它是从缓存中获取的,而不是从服务器获取的。然而,我还没有做任何测试来证实这一点。我会这样做:

创建以下缓存清单文件:

CACHE MANIFEST
/page1.html
/page2.html
/page3.html
/page4.html
将其包含在四个缓存清单文件中。然后:

  • 访问page1.html
  • 编辑page2.html,使其与访问page1.html之前不同
  • 访问page2.html
  • 看看你得到了哪个版本

  • 确保您在所有浏览器上都进行了尝试。我很想看到您的结果。

    当我们使用缓存清单时,每次加载页面时,它都会从缓存中获取文件。 有一个解决办法

    如果您对HTML文件做了任何更改,则必须更改清单文件中的版本号。这样您的清单就会从服务器中提取最新版本的HTML并将其存储在缓存中

    CACHE MANIFEST
    
    #v01
    /page1.html
    /page2.html
    /page3.html
    /page4.html
    
    您可以将V01增加到02,03。。。因此,这将确保您的缓存将具有最新版本的html页面

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