PageSpeed指责"渲染阻塞"使用外部图像时

时间:2017-02-17 09:02:57

标签: html html5 pagespeed google-pagespeed html-rendering

我在CDN的正文(在</body>之上)的结束标记之前放置了一个CDN脚本。谷歌的PageSpeed Insights说:

  

在首屏内容中消除渲染阻止JavaScript和CSS   您的页面有1个阻止脚本资源。这会导致呈现页面的延迟。

我认为在</body> 结束之前的脚本会延迟呈现?

经过一些试验和错误后,我发现这是因为我的页面使用了外部图像。通过下面的示例,您可以使PageSpeed检测到&#34;渲染阻塞&#34;脚本:

<body>
    <img src="http://i.stack.imgur.com/oURrw.png" />
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</body>

这是否真的导致渲染页面的延迟?

2 个答案:

答案 0 :(得分:1)

  

我认为脚本在</body>结束之前没有延迟渲染?

正确,他们不会。

  

例如,对我来说,这个(带图像)会触发https://code.jquery.com/jquery-3.1.1.min.js的渲染阻止警告:

     

...

     

如果我删除img,则渲染阻止JavaScript警告会消失。

我将此报告为错误。我没有看到任何关于该脚本的渲染阻塞。我甚至尝试将img包裹在固定大小的overflow: none div中,但仍然出错。无法理解为什么该脚本会被渲染阻塞;如果你把它报告为一个bug,那么事实证明这是一个很好的结果。但更可能的是它是一个错误。

答案 1 :(得分:0)

恕我直言你相信是正确的,谷歌的PageSpeed应该指的是阻止某些页面呈现时间的资源b / c它同步执行脚本所以理论上你的页面仍在加载,推迟执行它们async和那个& #39;为什么在将它们更改为以延迟模式加载后它没有投诉。你可以查看这篇很好的帖子,它很好地解释了它here