1. 程式人生 > >高效能網站建設-6將指令碼放在底部

高效能網站建設-6將指令碼放在底部

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放置指令碼最好的地方是頁面的底部。

- 將指令碼放在底部後,雖然請求時間較長,但對頁面的影響很小。

4.3 另一種建議:使用延遲指令碼(Deffered)。在Firefox種,即使是延遲指令碼也會阻塞呈現和並行下載。

5.總結:將指令碼移到頁面底部。