14

我正在尝试 chrome 中的预渲染功能,但是当我检查网络时,我可以看到任何链接的请求都被取消了。

chrome 开发者控制台

我正在使用以下语法:

<link rel="prerender" href="http://example.org/index.html">

我在http://prerender-test.appspot.com/尝试了现场演示并得到了相同的结果。这是为什么?

更新(来自https://developers.google.com/chrome/whitepapers/prerender):

在某些情况下,在预呈现网站时,Chrome 可能会遇到可能导致用户可见行为不正确的情况。在这些情况下,预渲染将被静默中止。其中一些案例包括:

  • 注意:这不是一个详尽的列表。最后更新于 2011 年 11 月 10 日。

    1. URL 启动下载
    2. 页面中的 HTMLAudio 或 Video
    3. POST、PUT 和 DELETE XMLHTTPRequests
    4. HTTP 身份验证
    5. HTTPS 页面
    6. 触发恶意软件警告的页面
    7. 弹出/窗口创建
    8. 检测资源利用率高
    9. 开发者工具已打开
    10. Flash 等插件的初始化将延迟到用户实际访问预呈现的页面。

但问题是我什么时候可以使用这个功能?

4

2 回答 2

18

在这种情况下,听起来好像预渲染请求被取消了,因为您打开了开发者工具。

如果您想查看有关取消请求的原因的更多信息,请将 chrome://net-internals/#prerender 复制并粘贴到多功能框中,然后按 Enter。

预呈现应该适用于您从白皮书粘贴的取消原因列表中未列出的几乎所有情况。

于 2012-04-02T19:50:51.130 回答
1

预渲染、预取和开发者工具:

当开发人员工具打开时(在大多数浏览器中:IE、Chrome、Firefox),预渲染和预取链接(根本不是相同的功能)被禁用,因为它们都部分基于“缓存”-实际上“预取”完全基于缓存和子资源因为这就是它的作用 - 它将未来内容(仅限顶层)加载到缓存中,因此在导航到下一页时它已经可用。“预渲染”使用缓存,但也将整个页面渲染到后台的“隐藏选项卡”中。

启用开发工具时,当前页面不是“缓存”,因为大多数浏览器在开发工具打开时默认禁用缓存。

查看预渲染的实际效果并对其进行测试 最好的方法是使用任务管理器 - 一旦加载当前页面,您将能够看到预渲染进程正在启动。

所有你需要知道的关于 Prerender / Prefetching 的总结:这里

于 2014-10-23T00:24:57.803 回答