官方 casync.js : www.cityooh.com
C_async.js是一款基于JQ的免费开发框架,它可以帮助您模块化各子集功能,快速构建单页面的web应用,集合了日常RIA开发中,部分常用功能,并可依据实际项目的需求进行定制化的导入。
目前,casync.js引入了page和define的概念,它是类似于sea.js的模块化加载器,可以极大的方便开发人员去划分项目结构。
下面是一个简单的实例:
首先,需要您引入以下的一些文件
config.js
( function( $ ){
var $g = window.$g = {
modules : $c.page( $( "body" ) , {
home : "js/home.js",
pageOne : "js/pageOne.js",
pageTwo : "js/pageTwo.js",
pageTre : "js/pageTre.js"
} ),
plugin : $c.page( {
pluginOne : "js/plugin/pluginOne.js",
pluginTwo : "js/plugin/pluginTwo.js",
pluginThr : "js/plugin/pluginThr.js"
} ),
global : $c.page( {
configOne : "js/config/configOne.js"
} )
};
$g.modules.home.display( function(){
console.log( "home" );
} );
$g.global.configOne.get( function(){
console.log( $g.global.configOne );
} );
} )( jQuery );
home.js
$c.define( {
// 这里为page 它为申明page模块
page : $g.modules.home,
// url 注入当前js 具体实现的依赖文件
url : [ "js/homeOne.js" , "js/homeTwo.js" , "css/home.min.css" , "page/home.html" ],
constructor : function(){
var self = this;
self.say();
// return 为 外抛方法集 类似于node.js中 exports 的作用
return {
tell : function(){
self.say();
}
};
}
} );
homeOne.js
$c.define( {
// 这里为parent 它指向自己的父级 page
parent : $g.modules.home,
url : [ "js/homeThr.js" ],
constructor : function(){
var self = this;
return {
say : function(){
console.log( self );
}
};
}
} );
上述代码中引入了一个层级关系 homeOne.js 是隶属于 home.js 里的
home.js 里 可以调用homeOne里 外抛的方法 当然您也可以 在其它模块中 使用 $g.modules.home.say(); 来进行使用
如果您希望 子 中的方法仅内部使用 您也可以在父级中 return = { say : null }
这样它可以禁用外部模块使用它
casync.js中未对开发方式进行任何的约束 您可以对模块的管理进行随意的划分
上例中我将项目分为页面层(modules)、插件(plugin)、配置层(global)
您也可以根据开发人员的个人偏好 设置为mvc等等
更多的信息可以参考官方:www.cityooh.com