我记得曾经读到过一种可以让浏览器预加载页面的元标签,那个标签是什么来着?
预取在W3C规范中被称为资源提示。它已经在Firefox、Chrome、IE 11、Edge、Opera 12.1之后以及Android浏览器4.4.4以上版本中实现,有关更多和最新细节,请参见caniuse预取页面。
此外,有关相关技术的caniuse和规范页面(支持的浏览器版本从caniuse检索并截至2015年9月)也可参考:
lazyload
,Microsoft试图将其纳入规范,但目前尚未成功。据称iCab是第一个实现预取的浏览器,尽管这种行为是自动的,而非由标记控制的。
Mozilla应用套件和后来的Firefox实现了规范(实际上该规范基于Mozilla早期的预取实现,该实现在RFC 2068中指定了Link:
头部,现已被RFC 2616所取代[该规范不再引用Link:
头部]。请参阅文档的旧版本()以获取更多详细信息)。根据MDN文档()的说明:
链接预获取是一种浏览器机制,利用浏览器空闲时间下载或预获取用户可能在不久的将来访问的文档。
浏览器查找具有关系类型为
next
或prefetch
的HTML<link>
或HTTPLink:
头部。
因此,语法如下:
<link rel="prefetch" href="/path/to/prefetch" />
Link:
。Link: </page/to/prefetch>; rel=prefetch
或者使用<meta>
来模拟相同的HTTP头:
<meta http-equiv="Link" content="</page/to/prefetch>; rel=prefetch">
next
关系也可以使用,但其主要功能是指示导航中的“下一页”,因此您不应将其用于资源或不相关的信息。预取也在 HTTPS 连接上执行。<head>
中添加<link rel="dns-prefetch" href="//example.com">
。如果您需要使用第三方元素,则可能会有所帮助。<link rel="preconnect" href="https://example.com/">
<link rel="prefetch" href="imgs/image.png">
。请注意,浏览器决定是否下载资源(可能会忽略您)<link rel="prerender" href="http://example.com/page">
。您应该非常确定该人将打开页面,否则将浪费他的带宽。<link rel="next" href="http://www.example.com/link-reference">
在FLASH或HTML5项目中,预加载资源是最困难和最简单的任务之一,因为我们已经完成了FLASH到HTML5转换项目。
最简单的预加载程序是静态预加载程序,用于加载它们所存在的电影。对于这些预加载程序,您只需要在预加载屏幕上停止电影,通常是电影的第一帧,并将其保留在那里,直到您能够确定电影已完全加载到Flash播放器中。
预加载程序还可以防止更改Web页面上未缓存的图像时出现闪烁或延迟,因为每次需要显示相同的图像时都必须从服务器下载。
我们在我们的Web应用程序(HTML5)中使用了 jQuery HMTL5 Loader,您可以在此处查看 Github Repo。
这个插件需要一个 JSON 文件来获取需要预加载的文件,它可以预加载图片、 HTML5 视频和音频资源、脚本和文本文件。除此之外,它还有不同类型的加载器(圆形、线形、大计数器等)和其他附加功能。
实现方式如下。
<script>
var loaderAnimation = $("#html5Loader").LoaderAnimation();
$.html5Loader({getFilesToLoadJSON:'json file',
onUpdate: loaderAnimation.update,
debugMode:false
});
</script>
它在不同的浏览器(包括 Chrome、FireFox、Safari、Opera 等)以及移动浏览器中都能完美工作。
注意:我们已将其用于我们的 HTML5 网页应用程序,该应用程序可以在包括 Android 和 iOS 在内的不同平台上运行。
<link>
标签,这样做是否有效? - Aruna Tebel