Chrome Prerender功能每次都会被取消

Shl*_*rtz 14 javascript html5 google-chrome prerender

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

chrome开发者控制台

我使用以下语法:

<link rel="prerender" href="http://example.org/index.html">
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 注意:这不是一个详尽的清单.最后更新时间为11/10/11.

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

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

小智 18

在这种情况下,由于您打开了开发人员工具,因此听起来正在取消预呈现请求.

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

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

  • 这会导致一种不正常的情况 - 如何在开发人员工具关闭时知道预取是否有效?如果没有人在观看,预取资源是否实际预取?我想,信仰. (6认同)
  • 如果开发者工具处于打开状态,为什么禁用预渲染? (2认同)
  • 这是因为网页的预渲染发生在单独的背景选项卡中(没有附加开发工具),当您访问预渲染页面时,浏览器会切换选项卡(全部在后台),此选项卡的内容包含已经在没有开放工具的情况下渲染.因此,由于您需要该页面的devtools,浏览器会再次加载它. (2认同)