1. 程式人生 > >力求改變,給自己多一點,再多一點的挑戰!

力求改變,給自己多一點,再多一點的挑戰!

前一段時間看一本《高效能網站建設進階指南》這本書,提到頁面中的js並不是同步載入的,這就會導致如果幾個js檔案是互為牽制的話,可能會造成有未讀取到的js沒有及時生成元素而報錯的問題,而今天也是在網上看到了一篇叫做js同步載入最佳實踐的文章,提出了一個能把多個js檔案實現同步載入的最佳的辦法。

1.方法思路:

a.在頁面底部新增一個叫做first的js檔案,這個檔案裡有一個loadScript的方法,這個方法有兩個引數一個是url,另一個是返回函式,而這個loadjs的方法則是通過XMLHttpRequest物件readyState的五個狀態來為頁面新增含有src屬性的script程式碼。

b.在頁面中呼叫這個first.js檔案,並在頁面底部呼叫這個方法,需要新增幾個js就呼叫幾次。

2.方法程式碼:

a.編寫first.js的loadScript的方法

 

b.在頁面內呼叫這個指令碼檔案,並執行loadScript的方法

 

3.直接把js寫在head之間和同步載入的效果對比

同步載入js效果:

同步載入

直接把js寫在head之間效果:

直接把js寫在head之間

注:

1.關於這篇載入 Javascript 最佳實踐請參考這個地址《

2.loadScript用到的XMLHttpRequest的一些readyStae狀態的知識,請參考為之漫筆(李鬆峰)先生blog的一篇文章,有詳細的講解