谷歌浏览器 - 在HTML中设置新的预呈现或预取的正确方法是什么?


<!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-"的所有好东西,请参阅谷歌的精彩演示。

最新更新