2017-02-17 101 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很善於保持公開。 (當然偶爾會有絆腳石。) –