手机版

in.js一个轻量级的JavaScript粒度模块加载和依赖关系管理解决方案

时间:2021-10-18 来源:互联网 编辑:宝哥软件园 浏览:

国外如RequireJs、YUI装载机、LabJs、基于jQuery的RunJs,国内如淘宝的SeaJs、豆瓣的DoJs等。这些是一些优秀的模块加载器。但是,本文将介绍一个新的开源轻量级“多线程”异步模块加载器in . js . in的开发借鉴了Do的一些思想和使用习惯。在此期间,我要感谢@柯俊与我耐心的交流。In.js压缩后只有4.77k,不仅小而且非常好用。优点:按需加载、无阻塞加载、依赖管理、粒化模块管理,如何使用?a .引入In.js复制代码如下: script type=' text/JavaScript ' src=' http : in.js ' autoload=' true ' core=' jquery . min . js '/脚本只需要在页面顶部引入in . js即可。这里需要注意两个参数:加载In.js时autoload:是否加载底层核心库{ optional parametertrue | false } core 3360底层核心库的路径{ optional parameterURL }如果同时设置了core,并且autoload=true,那么在引入in.js的同时会将核心加载到页面中。声明每个模块插件的地址和依赖关系(名称,{config})。复制的代码如下: in。add ('mod-a ',{path:' MODS/a.js ',type3360' js ',charset 3360 ' 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 ']});上面的代码声明了三个模块的依赖关系和模块的地址,并将它们添加到队列中(只添加到队列中,不添加到页面中)。c .加载队列In(queue)并复制代码如下: vardemo=in ('mod-b ',function () {//do某物},function () {//do某物返回false});加载mod-b模块,加载后执行functionA和functionB。在这个假设中,当引入in.js时,autoload=true被设置。队列中的加载顺序为:1jquery . min . jsmod-a mod-B- cssmod-b functiona()function b()。加载完所有队列后,演示将被分配为一个数组。其中存储了每个函数的返回值:1demo={returns : [undefined,false],complete: true} D .在domReady之后,加载queue In.ready(queue)并复制代码如下: in。ready ('mod-b ',function () {//do某物})。队列加载的顺序:jquery . min . js { domReady } mod-a mod-B- CSS mod-b函数()In.ready()和in()的区别在于两点:In.ready()中的队列只会在domReady之后的in.ready()中执行。没有返回值。监控变量的变化。英寸watch (object、property、function (prop、old、new) {})由于in加载的队列是异步的、非阻塞的加载,有时为了特殊的需求(比如后续的操作取决于队列中函数的返回值),我们需要确保队列在执行后续操作之前得到执行。在这种情况下,您可以使用In.watch()来监视return.complex变量,并在return.complete==true时执行回调函数。代码如下:复制代码如下:VARModel=in ('model ',function(){//做点什么返回123;});In.watch(model,' complete ',function(prop,old,new){ if(model[prop]==true){ console . log(model . returns[0]);//print 123 In.unwatch(模型、道具);//破坏model.complete的watch事件} });In的魅力远不止于此,其可靠性在几个大型工程中得到了证实。除此之外,In还有智能提示。例如,如果在()中加载了未声明的模块,将提示您检查模块名称。真心希望更多的前端朋友关注In,使用In,甚至投身于In的后续发展。下图为In.js的英文版:In.js  Manual

哪里下载?In.js是一个开源项目。你可以在下面的地址找到它的源代码或者下载使用。使用关于Author:郭凯的in . js http://project.benben.cc/Inhttp://github.com/PaulGuo/In对您的Javascript模块进行粒度管理和加载。

版权声明:in.js一个轻量级的JavaScript粒度模块加载和依赖关系管理解决方案是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。