[javascript] $(文件)。就緒(函數(){}); vs頁面底部的腳本



Answers

通過在整個DOM中分散$(document).ready()腳本(而不是所有的末尾),頁面的加載速度會更慢,因為它需要首先同步加載jQuery。

$ = jQuery 。 因此,如果不先加載jQuery,則不能在腳本中使用$ 。 這種方法迫使你在頁面開始附近加載jQuery,這會暫停頁面加載,直到完全下載jQuery。

你不能async加載jQuery,因為在許多情況下,你的$(document).ready()腳本會在jQuery完全異步加載並導致錯誤之前嘗試執行,因為$還沒有定義。

這就是說,有一種方法可以欺騙系統。 基本上將$設置$等於將$(document).ready()函數推入隊列/數組的函數。 然後在頁面底部,加載jQuery,然後循環訪問隊列並一次執行每個$(document).ready() 。 這允許您將jQuery推遲到頁面的底部,但仍然在DOM之上使用$ 。 我個人還沒有測試過它的效果如何,但理論是正確的。 這個想法已經存在了一段時間,但我很少看到它的實現。 但這似乎是一個好主意:

http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax

Question

在頁面底部編寫腳本並編寫腳本時,有什麼區別/優點/缺點?

$(document).ready(function(){});





Links