成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用In.js顆粒化管理、加載你的JavaScript模塊

開發 前端
近一年來,國內外都十分熱衷于異步加載的研究,為了加快頁面的載入速度,無阻塞加載Javascript的方法和框架成為了前端開發的焦點和亮點之一。

 

[[37962]]

 

國外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,國內也有淘寶的SeaJs,豆瓣的DoJs等,這些都是一些十分優秀的模塊加載器。但是本文將會向大家介紹一個新的開源的輕量級“多線程”異步模塊加載器In.js,In的開發借鑒了Do的一些思路和使用習慣,在此期間感謝@kejun同我的耐心交流,In.js壓縮后只有4.77k,不僅小巧而且十分好用。

優點:

◆ 按需加載

◆ 無阻塞加載

◆ 依賴關系管理

◆ 顆粒化模塊管理

如何使用?

A.引入In.js

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

只需要在頁面頂部引入in.js即可,這里有兩個參數需要注意:

autoload: 是否在加載in.js的時候加載底層核心庫 – {可選參數 – true|false}

core: 底層核心庫的路徑 – {可選參數 – url}

如果同時設置了core,并且autoload=true,則在引入In.js的同時加載core到頁面中。

B.聲明各個模塊的地址和依賴關系In.add(name,{config})

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

上述代碼聲明了三個模塊的依賴關系和模塊的地址,并將它們加入到隊列中去(僅僅是加入隊列,并沒有加載到頁面中去)。

C.加載隊列In(queue)

  1. var demo=In('mod-b',function() {  
  2.     //do something  
  3. },function() {  
  4.     //do something  
  5.     return false;  
  6. }); 

加載mod-b模塊,加載完后執行functionA和functionB,在此假設引入in.js時設置了autoload=true,那么隊列中的加載順序依次為:

  1. jquery.min.js >>> mod-a >>> mod-b-css >>> mod-b >>> functionA() >>> functionB() 

隊列全部加載完成后,demo會被賦值為一個數組,其中存放的是每個function的返回值:

  1. demo={returns:[undefined,false],complete:true

D.在domReady之后加載隊列In.ready(queue)

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

隊列加載順序:

  1. jquery.min.js >>> {domReady} >>> mod-a >>> mod-b-css >>> mod-b >>> function() 

In.ready()和In()的區別在于兩點:

◆ In.ready()中的隊列只有在domReady之后才會執行

◆ In.ready()沒有返回值

E.監聽變量變化,值改變則執行回調In.watch(object,property,function(prop,old,new) {})

由于In加載的隊列均為異步非阻塞式加載,所以有時候為了特殊需求(比如后續的操作依賴隊列中function的返回值),我們需要在確保隊列執行完成后,再執行后續操作。這種情況下,可以用In.watch()監聽return.complete變量,當return.complete==true的時候執行回調函數,代碼如下:

  1. var model=In('model',function() {  
  2.     //do something  
  3.     return 123;  
  4. });  
  5. In.watch(model,'complete',function(prop,old,new) {  
  6.     if(model[prop]==true) {  
  7.         console.log(model.returns[0]);//print 123  
  8.         In.unwatch(model,prop);//destroy the watch event of model.complete  
  9.     }  
  10. }); 

————————-華麗的分割線————————-

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

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

 

In.js Manual

 

在哪下載?

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

http://project.benben.cc/In

http://github.com/PaulGuo/In

原文:http://www.qianduan.net/particles-with-in-js-management-load-your-javascript-module.html

【編輯推薦】

  1. 使用Jscex改善JavaScript異步編程體驗
  2. 使用node.js進行服務器端JavaScript編程
  3. JavaScript實現頁面滾動圖片加載
  4. 10個對JavaScript開發者超級有用的工具
  5. 5個有趣的JavaScript代碼片段分享
責任編輯:陳貽新 來源: 前端觀察
相關推薦

2016-10-09 11:03:41

Javascript模塊化Web

2019-08-28 16:18:39

JavaScriptJS前端

2013-08-20 18:39:34

JavaScript模requireJS

2015-11-02 19:11:27

阮一峰javascript循環加載

2020-12-30 11:22:11

Node.js前端模塊

2012-11-08 10:21:41

JSrequireJavaScript

2012-03-12 09:33:04

JavaScript

2011-12-09 11:16:48

Node.js

2020-08-31 15:00:17

Node.jsrequire前端

2011-09-08 14:07:28

Node.js

2021-09-16 05:32:31

No.js 模塊加載器module1.js

2015-11-23 09:50:15

JavaScript模塊化SeaJs

2012-11-08 09:45:44

JavaScriptrequireJS

2022-02-04 21:33:34

Ajaxjs網站

2022-11-16 08:43:30

Node.js模塊

2011-02-21 12:52:00

JavaScript

2020-05-12 08:39:50

JavaScript工具技術

2017-04-10 14:23:01

typescriptjavascriptwebpack

2021-11-22 22:14:46

JavaScript開發模塊

2020-04-08 08:35:20

JavaScript模塊函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美二区在线 | 欧美日韩在线免费 | 日本天天操 | 成人在线电影在线观看 | 久久91精品久久久久久9鸭 | 欧美 中文字幕 | 成人在线网 | 成人免费观看视频 | 亚洲欧洲成人av每日更新 | 亚洲一区二区在线免费观看 | 欧美日韩一二三区 | 风间由美一区二区三区在线观看 | 日韩综合一区 | 美日韩免费| 国产午夜精品久久久 | 日日摸夜夜添夜夜添特色大片 | 天天综合网91| 久久男人天堂 | 操久久| 欧美黄色一区 | av在线视| 欧美中文字幕一区 | 欧美日本高清 | 午夜视频在线免费观看 | 久久9视频| 日产精品久久久一区二区福利 | 奇米影视在线 | 男人av在线 | 国产视频不卡一区 | 欧美精品一区二区三区四区五区 | 国产不卡视频 | 久久久久国产 | 午夜日韩| 国产精品免费在线 | 欧美精品99 | 亚洲国产免费 | 成人在线视频免费看 | 国产精品高潮呻吟久久 | 成人av一区二区亚洲精 | 亚洲网站在线观看 | 一区二区三区不卡视频 |