3 回答
TA貢獻1842條經驗 獲得超13個贊
它本身很少,無論是哪種方式,DOM都可以讓你操作(我很擔心,直到我從谷歌讀到這個)。如果你使用頁面結尾技巧,你的代碼可能會被稱為最輕微,最輕微的一點,但沒有什么是重要的。但更重要的是,此選擇與將JavaScript鏈接到頁面的位置有關。
如果您將script標記包含在head依賴中ready,則瀏覽器會script在向用戶顯示任何內容之前遇到您的標記。在正常的事件過程中,瀏覽器停止運行并下載腳本,啟動JavaScript解釋器,然后將腳本交給它,然后在解釋器處理腳本時等待(然后jQuery以各種方式監視)為DOM做好準備)。(我說“在正常的過程中”,因為有些瀏覽器支持標簽上的async或defer屬性script。)
如果script在body元素的末尾包含標記,則在您的頁面基本上已經顯示給用戶之前,瀏覽器不會執行所有操作。這可以改善頁面的感知加載時間。
因此,為了獲得最佳的感知加載時間,請將腳本放在頁面底部。(這也是雅虎人的指導原則。)如果你打算這樣做,那么就沒有必要使用了ready,當然如果你喜歡的話也可以。
但是有一個代價:您需要確保用戶可以看到的內容已準備好與之互動。通過將下載時間移動到頁面大量顯示之后,可以增加用戶在加載腳本之前開始與頁面交互的可能性。這是將script標簽放在最后的反駁論據之一。通常這不是一個問題,但你必須查看你的頁面,看它是否是,如果是,你想如何處理它。(你可以在一個小的內聯 script元素中head設置一個文檔范圍的事件處理程序來處理這個問題。這樣,你可以獲得改進的加載時間但是如果 他們試圖過早做某事,你可以告訴他們,或者更好的是,將他們想做的事情排隊,并在你的完整腳本準備就緒時進行。)
TA貢獻1875條經驗 獲得超3個贊
在加載js之前處理交互的另一種方法是使頁面無需javascript即可開始工作。確保所有鏈接都有效,盡管它們當然會觸發頁面重新加載。然后用js劫持鏈接和其他東西,并添加你的ajax或其他鈴聲和口哨:)
添加回答
舉報
