官方 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