预取包含在
W3C spec under the name Resource Hints中。它在Firefox,Chrome,IE 11,Edge,Opera 12.1和Android 4.4.4中的Android浏览器中实现,有关更多和最新的详细信息,请参阅
caniuse prefetch page。
另请参阅相关技术的caniuse和spec页面(以后支持的浏览器从caniuse检索,并于2015年9月更新):
>预渲染caniuse/spec(IE 11,Edge,Chrome,Opera)
>预连接caniuse/spec(Firefox,Chrome 46,Opera 33)
> DNS Prefetching caniuse/spec(IE9(见下面的注释),IE10,除了Opera Mini以外的其他浏览器,也许iOS Safari和Android浏览器)
IE 9仅实现了DNS预取,但称为“预取”(注意!)。 Chrome一段时间(至少到2013年)只有预呈现和DNS预取。 IE11实现lazyload,用于图像;微软试图在规格,但到目前为止它不是。 iCab is stated已经是第一个实现预取的浏览器,虽然这种行为是自动的,不是由标记控制的。
历史背景
Mozilla应用程序套件以及后来的Firefox实现规范(规范实际上是基于Mozilla早期实现的预取,这有点基于RFC 2068中指定的链接:头,现在已被RFC 2616所取代更多细节请参见this old version of the docs(?))根据the documentation on MDN(?):
Link prefetching is a browser mechanism,which utilizes browser idle time to download or prefetch documents that the user might visit in the near future.
The browser looks for either an HTML or an HTTP Link: header with a relation type of either next or prefetch.
所以语法是:
您还可以使用链接:HTTP标头:
Link: ; rel=prefetch
或者< Meta>模拟相同的HTTP标头:
请注意,也可以使用下一个关系,但它的主要功能是在导航中指示“下一个”页面,因此您不应该将其用于资源或不相关的信息。还会在HTTPS连接上执行预取。
iCab
iCab seems to(?)在2001年左右实现了早期预取.iCab显然预取了到内容页面(而不是资源)的所有链接,而不是跟随开发人员在标记中留下的任何提示。