高效能網站建設-6將指令碼放在底部
阿新 • • 發佈:2018-11-22
1.指令碼帶來的問題
1.1將指令碼從頁面的頂部移到底部,會使頁面既可以逐步呈現,也可以提高下載的並行度。
1.2將指令碼放在頁面越靠下的地方,意味著越多的內容能夠逐步呈現。
2.並行下載
2.1 HTTP1.1規範:建議瀏覽器從每個主機名並行的下載兩個元件。
2.2 預設情況下,IE和Firefox都遵守這一建議。可以再IE、Firefox來修改這一預設設定。
2.3 因此,與其依賴使用者來修改瀏覽器設定,不如簡單地使用CNAME(DNS別名)來將元件分別放到多個主機名中。
2.4增加並行下載的代價:消耗頻寬和CPU速度,過多會降低效能。
2.5研究表明:使用2個主機名,比使用1、4或10個主機名能帶來更好地效能。
3指令碼阻塞下載
3.1在下載指令碼時,瀏覽器並行下載實際上被禁用的。--即使使用了不同的主機名,瀏覽器也不會啟動其他的下載。
3.2指令碼下載時,瀏覽器其阻塞下載的原因:
- 指令碼可能使用document.write來修改頁面內容,瀏覽器等待,以確保頁面能恰當的佈局。
- 為了確保指令碼能夠按照正確的順序執行。(因為指令碼之間可能存在依賴關係)
4
4.1指令碼對Web頁面的影響
- 指令碼會阻塞對其後面內容的呈現
- 指令碼會阻塞對其後面元件的下載
4.2放置指令碼最好的地方是頁面的底部。
- 將指令碼放在底部後,雖然請求時間較長,但對頁面的影響很小。