<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML Document</title>
<link rel="prefetch" href="https://www.apple.com/">
<link rel="prerender" href="https://www.apple.com/">
<script>
document.addEventListener('click', function () {
// Prerendering https://www.apple.com/ipad on Chrome.
// ...
// Prefetching https://www.apple.com/ipad on Firefox.
// ...
}, false);
</script>
当页面被打开时,https://www.apple.com/在不同的浏览器上预呈现和预取。当文档被点击时,我希望预呈现和预取另一个页面,https://www.apple.com/ipad.
看来我们有两种方法可供选择。我们可以替换当前2个link
元素中的URL。或者我们可以在head
元素中插入2个新的link
元素。
在HTML中设置新的预呈现器的正确方法是什么?
在HTML中设置新的预取的正确方法是什么?
我尝试从替换预呈现link
元素的URLhttps://www.apple.com/到https://www.apple.com/ipad在Chrome上。我打开Chrome的任务管理器,发现https://www.apple.com/ipad未预先注册。唯一的预呈现页面仍然存在https://www.apple.com/.看来这种方法不起作用?
<link rel="prefetch">
实际上是HTML5规范的一部分。
<link rel="prerender">
似乎是谷歌在做自己的事情。
贾斯汀错了。您确实需要预取和预呈现(或者至少需要一个同时输出两者的polyfill(,因为FF支持预取,Chrome支持预呈现。
首先,你让我对prefetch
&prerender
用法。它们的用法应该是这样的:
prefetch
用法:
根据官方HTML5规范,它应该用于获取和缓存资源,以便以后的用户导航(即,预取一个css文件,该文件将在用户很可能在即将到来的导航中使用的页面中使用(支持Chrome、Firefox和;IE。
prerender
用法:
它应该用于预呈现一个完整的页面,用户很可能会在即将到来的导航中导航到它(例如,就像预呈现下一篇文章一样,用户很有可能会点击"下一篇"按钮(仅在Chrome&IE。
回到您的问题,您可以根据实际需要添加任意数量的浏览器提示(如您使用的两个link
(,只是不要因为它们占用大量资源而滥用它们。
因此,您可以在生成页面时注入提示(就像您所做的那样(,也可以在运行时使用如下javascript注入提示:
var hint = document.createElement("link");
hint.setAttribute("rel", "prerender");
hint.setAttribute("href", "https://www.apple.com/ipad");
document.getElementsByTagName("head")[0].appendChild(hint);
为了更好地了解如何使用"pre-"
的所有好东西,请参阅谷歌的精彩演示。