相信很多與頁面打過交道的同學都對 Yahoo 的 Best Practices for Speeding Up Your Web Site 不陌生。而這 35 條最佳實踐中,對 Javascript 的加載順序的要求是:Put Scripts at the Bottom。因為根據(jù)HTTP/1.1 specification 看來,在同一時間加載兩個文件是最理想的,而 Javascript 腳本會阻礙平行下載。Steve 說那是 2008 – 2009 那個時代用的。現(xiàn)在,加載 Javascript 已經(jīng)有了革命性的化變。
在開講之前,有一個必須解決的問題是:為什么我們要把 JS 文件放在 </body> 之前的最底部。根本原因是,它不能平行下載。而其實并不是所有瀏覽器都不支持,F(xiàn)在大部分瀏覽器都支持 Script 的平行下載,除了老掉牙的 IE6&7、Firefox 2&3.0、 Safari 3、Chrome 1。但我們最熟悉的老掉牙同學 IE6 (或以IE為核的那些殼)還是中國(甚至世界上)市場上占用率最高的瀏覽器,因此我們需要一個折衷的方案。
一、分析
我們有6種方法可以實現(xiàn)平行(NON-Blocking)下載:
- XHR Eval – 用 XHR 下載,并 eval() 執(zhí)行 responseText.。
- XHR Injection – 用 XHR 下載,在頁面中動態(tài)創(chuàng)建一個 script 元素,并將 responseText 作為其 text 。
- Script in Iframe – 把腳本放在 HTML 中,使用 ifame 來下載它。
- Script DOM Element – 動態(tài)創(chuàng)建一個 script 元素,把 src 指向腳本URL.
- Script Defer – 給 script 標添加 defer 屬性
- document.write Script Tag – 利用 document.write 把 <script src=""> 添加到 HTML 中。但這個只對 IE 有效。
兼容性可看下圖:
出處:幸福收藏夾
責任編輯:bluehearts
上一頁 下一頁 加載 Javascript 最佳實踐 [2]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|