国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

如何使用headjs來管理和異步加載js

2019-11-19 18:45:57
字體:
來源:轉載
供稿:網友

現在有許多成熟的js模塊加載器,比如requirejs和seajs等,但是對一些小的項目來說,它們的功能可能太過于“強大”,也許我們只是想要有一個能動態加載js的功能,或許我們只是想裝B一下,讓自己寫出的頁面沒有一大堆的這樣的東西。前面說的兩種js加載器都是更強調模塊性,也就是更強調js文件的組織和管理,更適用于大的項目。

就像剛剛說的,我只想有一個js文件加載器,我只需提供給它一個js文件的地址就行了的那種呢?那就進入我們的主題了,使用headjs吧。

首先,我想說一下Javascript的裝載和執行。通常來說,瀏覽器對于Javascript的運行有兩大特性:1)載入后馬上執行,2)執行時會阻塞頁面后續的內容(包括頁面的渲染、其它資源的下載)。于是,如果有多個js文件被引入,那么對于瀏覽器來說,這些js文件被被串行地載入,并依次執行。 而headjs可以異步地把js文件下載到用戶的本地,但是不執行,僅當在我們想要執行的時候去執行 。

基本用法

以下是它的基本用法:

// 最簡單的例子,異步加載jshead.js("/path/to/file.js");// 異步加載js,只在js加載成功之后執行后面的函數head.js("/path/to/file.js", function() {});// 并行下載下面的js,并且按順序加載執行jshead.js("file1.js", "file2.js", ... "fileN.js");// 并行下載js,并且按順序加載執行js,加載完成后執行后面的函數head.js("file1.js", "file2.js", function() {});// 類似head.js("file1.js", "file2.js","fileN.js");寫法不一樣而已head.js("file1.js");head.js("file2.js");head.js("file3.js");// 還可以這么寫head.js("file1.js").js("file1.js").js("file3.js");

腳本回調

上面的例子說明了最基本的使用,并且回調函數基本和加載放在一起,當我們需要把腳本寫在頁面底部,而回調函數卻在其他地方定義了,不期望在回調函數依賴的腳本還未加載之前執行,我們可以用到head.ready,基本用法如下:

//只有在頁面所有head.js加載完成之后才會執行head.ready(function() {});// 簡潔的寫法如下head(function(){});// 在頁面所有head.js加載完成之后才加載file1.jshead.ready("file1.js",function(){});

腳本別名

可以通過給腳本一個別名方便管理維護理解,使用方法如下:

// 按headjs中的腳本順序,下載并加載里面腳本,在腳本tool加載完成之后執行下面的回調head.ready("tools", function() { // 調用 $(".tip").tooltip();});// 給腳本起別名head.js( {jquery: "http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"}, {tools: "http://cnd.jquerytools.org/1.2.5/tiny/jquery.tools.min"}, {heavy: "http://a.heavy.library/we/dont/want/to/wait/for.js"}, // 別名可選 "http://can.be.mixed/with/unlabeled/files.js");

使用心得

順便介紹一下小林的一點點使用心得,先把網頁全部輸出,這時候全部的內容都未依賴腳本,然后再用headjs加載需要的腳本,來使頁面動態化,并應用了window.onload事件,防止腳本加載不成功頁面一直打轉讓用戶誤以為頁面還沒加載完,下面是詳細代碼:

<script type="text/javascript" src="http://linjunlong.com/wp-content/themes/L/js/head.min.js" ></script><script type="text/javascript"> window.onload=function() { head.js("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js",  function() {  }); }</script>

這樣做即使無法加載jquery等其他腳本也不會影響網頁的使用

以上就是本文的全部內容,希望對大家有所幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 连云港市| 库尔勒市| 河北省| 固安县| 年辖:市辖区| 平江县| 特克斯县| 丰都县| 若羌县| 赤城县| 绥棱县| 宁城县| 新沂市| 临城县| 曲阳县| 九江县| 灵石县| 万年县| 沽源县| 田东县| 博野县| 如东县| 璧山县| 湖南省| 凉城县| 顺平县| 托克逊县| 靖江市| 固安县| 晴隆县| 红桥区| 武强县| 岗巴县| 西畴县| 福州市| 咸丰县| 汶川县| 望谟县| 辰溪县| 广昌县|