最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

in.js 一個輕量級的JavaScript顆?;K加載和依賴關(guān)系管理解決方案

 更新時間:2011年07月26日 19:58:09   作者:  
近一年來,國內(nèi)外都十分熱衷于異步加載的研究,為了加快頁面的載入速度,無阻塞加載Javascript的方法和框架成為了前端開發(fā)的焦點和亮點之一。
國外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,國內(nèi)也有淘寶的SeaJs,豆瓣的DoJs等,這些都是一些十分優(yōu)秀的模塊加載器。但是本文將會向大家介紹一個新的開源的輕量級“多線程”異步模塊加載器In.js,In的開發(fā)借鑒了Do的一些思路和使用習(xí)慣,在此期間感謝@kejun同我的耐心交流,In.js壓縮后只有4.77k,不僅小巧而且十分好用。

優(yōu)點:
按需加載
無阻塞加載
依賴關(guān)系管理
顆?;K管理
如何使用?
A.引入In.js
復(fù)制代碼 代碼如下:

<script type="text/javascript" src="in.js" autoload="true" core="jquery.min.js"></script>

只需要在頁面頂部引入in.js即可,這里有兩個參數(shù)需要注意:
autoload: 是否在加載in.js的時候加載底層核心庫 – {可選參數(shù) – true|false}
core: 底層核心庫的路徑 – {可選參數(shù) – url}
如果同時設(shè)置了core,并且autoload=true,則在引入In.js的同時加載core到頁面中。
B.聲明各個模塊的地址和依賴關(guān)系In.add(name,{config})
復(fù)制代碼 代碼如下:

In.add('mod-a',{path:'mods/a.js',type:'js',charset:'utf-8'});
In.add('mod-b',{path:'mods/b.js',type:'js',charset:'utf-8',rely:['mod-b-css']});
In.add('mod-b-css',{path:'mods/b.css',type:'css',charset:'utf-8',rely:['mod-a']});

上述代碼聲明了三個模塊的依賴關(guān)系和模塊的地址,并將它們加入到隊列中去(僅僅是加入隊列,并沒有加載到頁面中去)。
C.加載隊列In(queue)
復(fù)制代碼 代碼如下:

var demo=In('mod-b',function() {
//do something
},function() {
//do something
return false;
});

加載mod-b模塊,加載完后執(zhí)行functionA和functionB,在此假設(shè)引入in.js時設(shè)置了autoload=true,那么隊列中的加載順序依次為:
1 jquery.min.js >>> mod-a >>> mod-b-css >>> mod-b >>> functionA() >>> functionB()
隊列全部加載完成后,demo會被賦值為一個數(shù)組,其中存放的是每個function的返回值:
1 demo={returns:[undefined,false],complete:true}
D.在domReady之后加載隊列In.ready(queue)
復(fù)制代碼 代碼如下:

In.ready('mod-b',function() {
//do something
});

隊列加載順序:
jquery.min.js >>> {domReady} >>> mod-a >>> mod-b-css >>> mod-b >>> function()
In.ready()和In()的區(qū)別在于兩點:
In.ready()中的隊列只有在domReady之后才會執(zhí)行 In.ready()沒有返回值 E.監(jiān)聽變量變化,值改變則執(zhí)行回調(diào)In.watch(object,property,function(prop,old,new) {})
由于In加載的隊列均為異步非阻塞式加載,所以有時候為了特殊需求(比如后續(xù)的操作依賴隊列中function的返回值),我們需要在確保隊列執(zhí)行完成后,再執(zhí)行后續(xù)操作。這種情況下,可以用In.watch()監(jiān)聽return.complete變量,當(dāng) return.complete==true的時候執(zhí)行回調(diào)函數(shù),代碼如下:
復(fù)制代碼 代碼如下:

var model=In('model',function() {
//do something
return 123;
});
In.watch(model,'complete',function(prop,old,new) {
if(model[prop]==true) {
console.log(model.returns[0]);//print 123
In.unwatch(model,prop);//destroy the watch event of model.complete
}
});

In的魅力遠遠不止上述這些,它的可靠性也已經(jīng)在幾個大項目中得到了印證,除此之外,In也有智能的提示,比如如果用In()加載一個事先未聲明的模塊,就會提示你檢查模塊名。真心的希望有更多的前端朋友關(guān)注In,使用In,甚至投入到In的后續(xù)開發(fā)中來。

下圖是In.js的英文版使用圖冊

In.js Manual

在哪下載?

In.js是一個開源的項目,你可以在下邊的地址找到它的源代碼或者下載它使用。

用In.js顆?;芾怼⒓虞d你的Javascript模塊

http://project.benben.cc/In

http://github.com/PaulGuo/In

關(guān)于作者

Author: Guokai

相關(guān)文章

  • JavaScript實現(xiàn)鼠標(biāo)經(jīng)過表格行給出顏色標(biāo)識

    JavaScript實現(xiàn)鼠標(biāo)經(jīng)過表格行給出顏色標(biāo)識

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)鼠標(biāo)經(jīng)過表格行給出顏色標(biāo)識,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 詳解webpack之scss和postcss-loader的配置

    詳解webpack之scss和postcss-loader的配置

    本篇文章主要介紹了詳解webpack之scss和postcss-loader的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • JS實現(xiàn)五星好評案例

    JS實現(xiàn)五星好評案例

    這篇文章主要為大家詳細介紹了JS實現(xiàn)五星好評案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • js 索引下標(biāo)之li集合綁定點擊事件

    js 索引下標(biāo)之li集合綁定點擊事件

    本文通過一段實例代碼給大家講解了js索引下標(biāo)之li集合綁定點擊事件的相關(guān)知識,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-01-01
  • JavaScript設(shè)計模式學(xué)習(xí)之代理模式

    JavaScript設(shè)計模式學(xué)習(xí)之代理模式

    這篇文章主要介紹了JavaScript設(shè)計模式學(xué)習(xí)之代理模式,對設(shè)計模式感興趣的同學(xué),可以參考下
    2021-04-04
  • JS封裝的模仿qq右下角消息彈窗功能示例

    JS封裝的模仿qq右下角消息彈窗功能示例

    這篇文章主要介紹了JS封裝的模仿qq右下角消息彈窗功能,涉及javascript事件響應(yīng)、頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • JavaScript 拖拉時間之drag案例詳解

    JavaScript 拖拉時間之drag案例詳解

    這篇文章主要介紹了JavaScript 拖拉時間之drag案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 從JQuery源碼分析JavaScript函數(shù)的apply方法與call方法

    從JQuery源碼分析JavaScript函數(shù)的apply方法與call方法

    這篇文章主要介紹了從JQuery源碼分析JavaScript函數(shù)的apply方法與call方法,本文結(jié)合JQuery源碼和js高級程序設(shè)計再次探究apply方法與call方法,需要的朋友可以參考下
    2014-09-09
  • JavaScript indexOf的第二個參數(shù)用法

    JavaScript indexOf的第二個參數(shù)用法

    indexOf 是我們非常熟悉的一個方法,它可以用來獲取某一個元素在一個數(shù)組里的位置,我們一般就會使用 array.indexOf(element) 的方法來進行使用,但是,大家有沒有使用過 indexOf 的第二個參數(shù)呢?本文將給大家介紹一下indexOf的第二個參數(shù)用法,需要的朋友可以參考下
    2024-02-02
  • javascript基本數(shù)據(jù)類型及類型檢測常用方法小結(jié)

    javascript基本數(shù)據(jù)類型及類型檢測常用方法小結(jié)

    這篇文章主要介紹了javascript基本數(shù)據(jù)類型及類型檢測常用方法,總結(jié)分析了javascript的基本數(shù)據(jù)類型與類型檢測的常用操作方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-12-12

最新評論

吉木萨尔县| 盐源县| 抚州市| 宜宾市| 大同市| 济阳县| 永寿县| 高雄市| 都昌县| 舞钢市| 宁陵县| 湘潭县| 枝江市| 新野县| 门源| 石阡县| 五指山市| 望谟县| 岱山县| 东丽区| 平罗县| 涪陵区| 山东省| 天水市| 临沧市| 深圳市| 安图县| 玛曲县| 临湘市| 鞍山市| 中方县| 离岛区| 大安市| 峨眉山市| 沛县| 剑河县| 杭州市| 电白县| 天水市| 津南区| 启东市|