亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不引人注目的JavaScript:HTML代碼頂部還是底部的<script>?

不引人注目的JavaScript:HTML代碼頂部還是底部的<script>?

千巷貓影 2019-10-08 15:03:27
最近,我閱讀了Yahoo宣言中的“加快網站訪問速度的最佳做法”。他們建議盡可能將JavaScript包含項放在HTML代碼的底部。但是確切的地點和時間?我們應該在關閉之前</html>還是之后放置它?最重要的是,我們什么時候仍應將其放在本<head>節中?
查看完整描述

4 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

真正不干擾腳本的可能性有兩種:

  • 通過頭部的script標簽包含一個外部腳本文件

  • 通過正文底部的script標簽(在之前</body></html>)包含一個外部腳本文件

第二個可能更快,因為最初的Yahoo研究表明,某些瀏覽器在命中script標簽時會嘗試加載腳本文件,因此,在完成瀏覽器之前,它們不會加載頁面的其余部分。但是,如果腳本具有“就緒”部分,并且必須在DOM準備就緒后立即執行,則可能需要將其放在頭部。另一個問題是布局-如果您的腳本要更改頁面布局,則您希望它盡快加載,這樣您的頁面就不會花很長時間在用戶面前重新繪制自身。

如果外部腳本站點位于另一個域(例如外部窗口小部件)上,則可能值得將其放在底部,以避免它延遲頁面的加載。

對于任何性能問題,請自己制定基準 -一次完成研究可能會因您自己的本地設置或瀏覽器的更改而改變。


查看完整回答
反對 回復 2019-10-08
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

從來沒有這么干過-雅虎建議將腳本放在結束</body>標記之前,這樣會產生一種幻覺,即頁面在空的緩存上加載速度更快(因為腳本不會阻止下載文檔的其余部分)。但是,如果您有一些要在頁面加載時運行的代碼,則僅在整個頁面加載后才開始執行。如果將腳本放在<head>標記中,它們將在執行之前開始執行-因此,在準備好的緩存中,頁面實際上看起來加載得更快。

同樣,將腳本放在頁面底部的特權并非始終可用。如果需要在依賴于之前加載的庫或其他JavaScript代碼的視圖中包含內聯腳本,則必須將這些依賴項加載到<head>標記中。

雅虎的所有建議都很有趣,但并不總是適用,應視具體情況進行考慮。


查看完整回答
反對 回復 2019-10-08
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

就像其他人所說的那樣,將其放置在html 主體 的結束標記之前。

前幾天,我們接到許多客戶的電話,抱怨他們的網站速度非常慢。我們在本地訪問了他們,發現他們花了20到30秒來加載單個頁面??紤]到服務器性能不佳,我們登錄了-但是Web和sql服務器的活動均為?0%。

幾分鐘后,我們意識到外部站點已關閉,我們正在將其鏈接至Javascript跟蹤標簽。這意味著瀏覽器正在點擊站點頂部script標簽,并等待下載script文件。

因此,至少對于第三方腳本/外部腳本,我建議將其作為頁面的最后內容。然后,如果它們不可用,瀏覽器將至少加載該頁面直到該點為止-并且用戶將忽略該頁面。


查看完整回答
反對 回復 2019-10-08
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

總結一下,基于以上建議:

  1. 對于外部腳本(Google Analytics(分析),第三方營銷跟蹤器等),請將其放置在</body>代碼之前。

  2. 對于影響頁面布局的腳本,請放在最前面。

  3. 對于依賴“ dom ready”的腳本(如jquery),請考慮放置在前面,</body>除非您出于特殊情況將腳本放在頭部。

  4. 如果有依賴項的內聯腳本,請將所需的腳本放在頭。


查看完整回答
反對 回復 2019-10-08
  • 4 回答
  • 0 關注
  • 802 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號