A Web Application Framework
JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ad-demo
appbuild-tools
combos
dist
docs
src
tools
.gitignore
README.html
README.md
changelog
todos

README.md

##Magix各版本CDN地址

####1.1 http://a.tbcdn.cn/apps/e/magix/1.1/kissy-magix.js (KISSY类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/kissy-magix-min.js (KISSY类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/kissy-magix-mxext.js (KISSY类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/kissy-magix-mxext-min.js (KISSY类库,Magix核心与扩展压缩版)

http://a.tbcdn.cn/apps/e/magix/1.1/seajs-magix.js (sejs+jq类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/seajs-magix-min.js (sejs+jq类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/seajs-magix-mxext.js (sejs+jq类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/seajs-magix-mxext-min.js (sejs+jq类库,Magix核心与扩展压缩版)

http://a.tbcdn.cn/apps/e/magix/1.1/requirejs-magix.js (requirejs+jq类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/requirejs-magix-min.js (requirejs+jq类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/requirejs-magix-mxext.js (requirejs+jq类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.1/requirejs-magix-mxext-min.js (requirejs+jq类库,Magix核心与扩展压缩版)

####1.0 http://a.tbcdn.cn/apps/e/magix/1.0/kissy-magix.js (KISSY类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/kissy-magix-min.js (KISSY类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/kissy-magix-mxext.js (KISSY类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/kissy-magix-mxext-min.js (KISSY类库,Magix核心与扩展压缩版)

http://a.tbcdn.cn/apps/e/magix/1.0/seajs-magix.js (sejs+jq类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/seajs-magix-min.js (sejs+jq类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/seajs-magix-mxext.js (sejs+jq类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/seajs-magix-mxext-min.js (sejs+jq类库,Magix核心与扩展压缩版)

http://a.tbcdn.cn/apps/e/magix/1.0/requirejs-magix.js (requirejs+jq类库,Magix核心未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/requirejs-magix-min.js (requirejs+jq类库,Magix核心压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/requirejs-magix-mxext.js (requirejs+jq类库,Magix核心与扩展未压缩版)
http://a.tbcdn.cn/apps/e/magix/1.0/requirejs-magix-mxext-min.js (requirejs+jq类库,Magix核心与扩展压缩版)

##Magix 1.1与Magix1.0的使用差异:

####ModelManager中的4处回调参数调整:

1.fetchAll调整
原来fetchAll回调参数:

fetchAll([{},{},...],function(m1,m2,m3...,errs){//model对象在前 error对象在后

});

现在调整为:
``` fetchAll([{},{},...],function(errs,m1,m2,m3...){//error对象在前,model对象在后

});


2.fetchOrder调整<br />
   原来fetchOrder回调参数:<br />

fetchOrder([{},{},...],function(model,errs,preErrors,preResults){//

});


<br />
现在调整为:<br />

fetchOrder([{},{},...],function(errs,model,preErrors,preResults){//

});


3.fetchOne调整<br />
   原来fetchOrder回调参数:<br />

fetchOne([{},{},...],function(model,errs,preErrors,preResults){//

});


<br />
现在调整为:<br />

fetchOne([{},{},...],function(err,model,preErrors,preResults){//

});


4.next调整<br />
   原来next回调参数:<br />

request.next(function(request,preReturned1,preReturned2...,errs){//

});


<br />
现在调整为:<br />

request.next(function(errs,preReturned1,preReturned2...){//去掉了request,同时err前置

});

####事件部分

原来写法:

return View.extend({ //... render:function(){ //调用 this.events.click.test({}); }, events:{ click{ test:function(e){ //code } } } });


现在写法:<br />

return View.extend({ //... render:function(){ //调用 this.test({}); }, 'test':function(e){ //code } });

####model与modelmanager
原来:

//app base model

return MxextMode.extend({ urlMap:{ groups:{ i1:'/api/userinfo.json', i2:'/api/list.json' } }, sync:function(options){ var url=this.url(); IO({ url:url, //... success:options.success, error:options.error }); } });

//app model manager

var MM=MxextManager.create(AppBaseModel);

MM.registerModels([ name:'Interface_1', uri:'groups:i1', urlParams:{ action:'get' } ]);


现在:

//app base model

return MxextMode.extend({ sync:function(callback){ var url=this.get('url');

  IO({
     url:url,
     //...
     success:function(data){
        callback(null,data);
     },
     error:function(msg){
        callback(msg||'request error');
     }
  });

} });

//app model manager

var MM=MxextManager.create(AppBaseModel);

MM.registerModels([ name:'Interface_1', url:'/api/getuserinfo.json', urlParams:{ action:'get' } ]);

原来需要在model的urlMap中定义之后,在modelmanager中再次定义,1.1直接把url放在modelmanager中进行维护,model只做parse和sync<br />
即:原来在model中填写的三个空:urlMap,parse,sync在1.1中变为两个空:parse,sync


<br /><br />
####其它
启动入口:<br />
原来:

Magix.start({

});

现在<br />

KISSY.use('magix/magix',function(S,Magix){ Magix.start({

}); });

Magix不再做为全局变量提供,请require magix/magix模块使用里面的功能

项目包配置:<br />
原来在Magix.start中传递appHome appTag之类的Magix会自动帮你配置包信息,现在需要开发者自已配置<br />

原来: Magix.start({ appHome:'./', appTag:new Date().getTime(), debug:true //... });

现在: KISSY.use('magix/magix',function(S,Magix){ S.config({ packages:[ { name:'app', tag:new Date().getTime() } ] });

Magix.start({ iniFile:'app/ini', rootId:'magix_vf_root' }); });


移除postMessageTo,receiveMessage
<br />
<br />
<br />


## Magix 1.0稳定版(2013-07-22)
1. 移动版与pc版
2. 增加seajs与requirejs
3. 完善API文档


## Magix 1.0升级简介

1. 拆分出magix核心与magix扩展两大块
2. 全新的Router解析引擎,全面支持history state和hash,支持二者之间平滑切换
3. 增强的view,丰富的自定义事件和资源管理,DOM事件全面支持不冒泡的事件
4. 支持底层类库切换,解除对底层类库MVC的依赖
5. 全新的代码组织方式,高内聚,低耦合
6. 改进的渲染流程和事件派发


## 简介

<http://magixjs.github.com/>

Magix适合用来构建大型的,面向前后端开发者以及IE6友好的,基于MVC结构和Hash驱动的OPOA(One Page One Application)应用.

Magix对View进行了父子结构抽象,通过VOM(View Object Model)对象,管理带有父子关系的View的展示生命周期.

Magix特别注意避免单页应用的浏览器内存大量积累和内存泄露.包括:

1.采取Dom节点即用即释放的方法,保障永不持有Dom节点

2.采用全新的事件代理方案,高效解耦Dom节点与事件响应体

Magix基于"约定大于配置"设计原则,可以快速构建可扩展的大型单页面Web应用.同时也特别注意保障可配置性和可扩展性