首頁  >  文章  >  web前端  >  headjs實作網站並行載入但順序執行JS

headjs實作網站並行載入但順序執行JS

高洛峰
高洛峰原創
2016-12-03 14:43:211299瀏覽

並行載入JS,但是執行的時候卻按順序執行,提高網站速度

<script src="js/head.min.js"></script>
<script type="text/javascript"> head.js("js/jquery-1.6.1.min.js","js/jquery.validate.min.js","js/my_validate.js"); </script>

   

注意:head.js("js/jquery-1.6.1.min.js","js/jquery.validate/jquery.validate .min.js","js/my_validate.js"); 裡麵包含的JS在本地資料夾裡面必須有,否則在IE中部執行

如:head.js("js/jquery-1.6.1.min .js","js/jquery.validate.min.js","js/alert.js");如果本地沒有jquery.validate.min.js文件,在IE下將不執行alert.js

1、非同步載入其他JS 文件,例如Jquery 。雖然之前我也是把引用的外部 JS 放在頁面底部的,但用了 head.js 之後,我可以把所有 JS 內容匯集成一個文件,放在頁面的最後。然後就可以在這個 JS 檔案裡來引用其他外部 JS 。例如我的頁面最下方引用了一個JS 內容為:

head(function() {
........
});
/* part 1 */
head.js("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
/* part 2 */

   

其中第一部分是頁面載入完成後要執行的JS 腳本,第二部分是執行腳本前先引用的外部JS 文件位址,很明顯如果想要升級使用的Jquery 版本,我只要修改這個檔案就行了而不用變動頁面內容。這對於採用靜態發布的 MovableType 來說很有用。

2、CSS3 屬性支持度檢測。說起來很拗口,意思就是可以分辨出瀏覽器是否支援某條 CSS3 屬性。如果支援某條屬性,那麼將會在頁面的 HTML 節點上加上一個以這個屬性命名的 class ,如果不支援則這個 class 的名字就有個 no- 前綴。例如,IE6 不支援 boxshadow 屬性的,瀏覽這使用 IE6 存取頁面時,頁面的 html 節點就是類似這樣的: 。

這樣就可以在 CSS 檔案裡設定當瀏覽器不支援某個進階屬性的時候用其他的方案來替代。

.boxshadow .box{
box-shadow: 0px 0px 5px #bbb;
}
.no-boxshadow .box{
border: 2px solid #bbb;
}

   

目前 head.js 可以偵測的 CSS3 屬性有 borderimage borderradius boxshadow opacity reflections rgba textshadow transforms transitions 。

3、head.js 可以偵測瀏覽器的種類、版本,還可以偵測目前造訪的頁面相對於網站根目錄的路徑,更酷的,head.js 可以動態地偵測到瀏覽器目前視窗大小。並且,把前面這幾個屬性都動態傳遞給 html 節點,加入上對應 class !這樣再配合 CSS 就可以製作出一個適應各瀏覽器、每個頁面都獨特得、隨著視窗大小的改變自動變換排版的酷設計了。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn