2017-02-17 102 views
3

我已经从我的页面正文的结束标记(在</body>以上)之前的CDN中放置了脚本。谷歌的PageSpeed Insights会说:PageSpeed在使用外部图像时控制“渲染阻塞”的脚本

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

我我</body>延迟渲染结束之前以为脚本?

经过一些试验和错误,我发现这是由于我的页面使用外部图像引起的。下面您的例子可能会导致的PageSpeed检测“阻止呈现”脚本:

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

这是否真的引起我的渲染页面的延迟?

+0

您可以将[mcve]放在一起展示*“您的页面有3个阻止脚本资源...”*错误并将标记置于问题中? –

回答

0

恕我直言,你的信仰是正确的,谷歌的PageSpeed应该指的是阻止某些页面渲染时间的资源b/c它同步执行脚本所以理论上你的页面仍在加载,延迟会执行它们的异步,这就是为什么它不会在您将它们更改为以延迟模式加载后不会投诉。你可以查看这个很好的帖子,它很好地解释了它here

+0

好的。但是,似乎添加'defer'只会满足PageSpeed Insights,实际上并没有比''之前的脚本有任何益处。 –

1

我以为脚本在我的</body>结束之前不会延迟渲染吗?

正确,他们没有。

例如,对于我来说,这(与图像)触发阻止呈现预警https://code.jquery.com/jquery-3.1.1.min.js

...

如果我删除了img,在阻止呈现的JavaScript警告消失。

我会报告,作为一个错误。我没有看到任何关于该脚本的渲染阻塞。我甚至试图用固定大小的img包装,并且仍然出现错误。看不到为什么该脚本会呈现阻塞状态;如果你将它报告为一个错误,结果是有原因的,那么这是一个好结果。但更可能是一个错误。

+0

你知道我可以在哪里报告这个错误吗? –

+0

@RuudLenders:不是手,不,但Google很善于保持公开。 (当然偶尔会有绊脚石。) –