国产强奷老师在线播放_日韩拍中文字幕无码_国产欧美Va欧美Va在线_亚洲午夜剧场av_欧美日韩一区蜜臀在线播放_JUX被夫上司欺辱的人妻_最近最新的日本字幕MV在线观看_999久久久精品国产_日韩伦理电影中文在线观看免费网_两个裸男脱了内裤互摸的视频

本頁內(nèi)容
當(dāng)PageSpeed Insights檢測到您的HTML引用了系統(tǒng)阻止的外部JavaScript文件(位于網(wǎng)頁首屏部分)時,就會觸發(fā)此規(guī)則。

概覽

瀏覽器必須先解析網(wǎng)頁,然后才能將其呈現(xiàn)給用戶。如果瀏覽器在解析過程中遇到系統(tǒng)阻止的外部腳本,必須停止解析并且下載該JavaScript。每次遇到這種情況時,瀏覽器都會增加一個網(wǎng)絡(luò)往返過程,這樣就會導(dǎo)致首次呈現(xiàn)網(wǎng)頁的時間延遲。

建議

建議您以內(nèi)嵌方式處理呈現(xiàn)首屏區(qū)域所需的JavaScript,并讓為網(wǎng)頁添加其他功能所需的JavaScript延遲加載,直到首屏內(nèi)容發(fā)送完畢為止。請注意,要通過這種方式縮短加載時間,您還必須優(yōu)化CSS發(fā)送過程。

內(nèi)嵌較小的JavaScript

如果外部腳本較小,您可以直接將它們添加到HTML文檔。通過這種方式內(nèi)嵌較小文件可讓瀏覽器繼續(xù)呈現(xiàn)網(wǎng)頁。例如,如果HTML文檔如下所示:


 
<html>

  <head>

    <script type="text/javascript" src="small.js"></script>

  </head>

  <body>

    <div>

      Hello, world!

    </div>

  </body>

</html>

資源small.js如下所示:


 
  /* contents of a small JavaScript file */

那么,您即可按如下這樣內(nèi)嵌腳本:


 
<html>

  <head>

    <script type="text/javascript">

      /* contents of a small JavaScript file */

    </script>

  </head>

  <body>

    <div>

      Hello, world!

    </div>

  </body>

</html>

這樣,您就可以將small.js內(nèi)嵌在HTML文檔中,從而消除對它的外部請求。

延遲加載JavaScript

為防止JavaScript阻止網(wǎng)頁加載,建議您在加載JavaScript時使用HTML異步屬性。例如:

<script async src="my.js">

如果您的JavaScript資源使用的是document.write,則使用異步加載就會不安全。我們建議您重寫使用document.write的腳本,以改用其他技術(shù)。

此外,異步加載JavaScript時,如果您的網(wǎng)頁加載互相依賴的腳本,請務(wù)必謹(jǐn)慎,以確保您的應(yīng)用以合適的依賴順序加載腳本。

常見問題解答

如果我使用的是JavaScript庫(例如jQuery),該怎么做?
很多JavaScript庫(例如jQuery)都可用來增強網(wǎng)頁,從而為網(wǎng)頁增添額外的互動性、動畫和其他效果。不過,這些行為大多可在首屏內(nèi)容呈現(xiàn)后再安全添加。請考慮是否可以將此類JavaScript的執(zhí)行和加載延遲到網(wǎng)頁加載后。
如果我使用JavaScript框架來構(gòu)造網(wǎng)頁,該如何操作?
如果網(wǎng)頁內(nèi)容由客戶端JavaScript構(gòu)造,那么您應(yīng)考慮一下是否可以嵌入相關(guān)的JavaScript模塊,從而避免產(chǎn)生額外的網(wǎng)絡(luò)往返過程。同樣,利用服務(wù)器端呈現(xiàn)可顯著提升首次網(wǎng)頁加載的效果,方式如下:在服務(wù)器上呈現(xiàn)JS模板,并將結(jié)果內(nèi)嵌到HTML,然后在應(yīng)用加載后使用客戶端模板。有關(guān)服務(wù)器端呈現(xiàn)的詳情,請參見http://youtu.be/VKTWdaupft0?t=14m28s。

 

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License. For details, see our Site Policies.