2012-03-19 43 views
3

使用Google Page Speed測試網站時,發現我無法擺脫Defer parsing of JavaScript。我刪除了所有的JavaScript代碼只留下一個小的推遲jQuery負載的JavaScript解析

<script defer type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.test').click(function(){ 
      $(this).slideDown(); 
     }); 
    }); 
</script> 

甚至沒有任何的jQuery代碼,只是加載jQuery的文件作爲獨立

<script defer type="text/javascript" src="jquery.min.js"></script> 

仍然得到預警Defer parsing of JavaScript

+0

基本上,你的客戶端代碼應該駐留在'.js'文件的地方,並將'defer'屬性添加到'

2

它就不能成爲

<script defer='defer' type="text/javascript" src="jquery.min.js"></script> 

,而不是提供空defere屬性利用推遲= '延遲'

+4

這不取決於你是否使用xhtml? – 2012-03-20 10:52:15

+0

只需使用'defer'。你不需要'defer ='defer''。 – 2015-03-25 00:59:16

10

@samsaffron寫了一篇很好的文章推遲的jQuery - http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax

+1

這個答案應該是被接受的。這一個URL提供了大量非常寶貴的參考。做得好! – 2012-10-31 16:18:05

+3

好吧,不管文章有多好,鏈接可能會像這裏的其他人一樣突破。 – DOK 2013-03-01 16:54:34

1

只需添加到您的腳本async例如:

<script type="text/javascript" async src="jquery.min.js"></script> 
+0

這並不總是如此。如果讀者在模塊化框架/平臺中執行此操作,請確保您檢查JS控制檯是否存在「無法讀取屬性」和/或「未定義」等錯誤,然後修復這些調用/模塊。期待這樣的行爲,並且需要在未來的mod中進行調整(這可能不會延遲/異步正確)。 – dhaupin 2016-08-01 17:37:36