解决方法
另请参阅相关技术的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
<link>
or an HTTPLink:
header with a relation type of eithernext
orprefetch
.
所以语法是:
<link rel="prefetch" href="/path/to/prefetch" />
您还可以使用链接:HTTP标头:
Link: </page/to/prefetch>; rel=prefetch
或者< Meta>模拟相同的HTTP标头:
<Meta http-equiv="Link" content="</page/to/prefetch>; rel=prefetch">
请注意,也可以使用下一个关系,但它的主要功能是在导航中指示“下一个”页面,因此您不应该将其用于资源或不相关的信息。还会在HTTPS连接上执行预取。
iCab
iCab seems to(?)在2001年左右实现了早期预取.iCab显然预取了到内容页面(而不是资源)的所有链接,而不是跟随开发人员在标记中留下的任何提示。