我在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>
这是否真的导致渲染页面的延迟?
答案 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。