cmd和inter各自的特点及区别
是AMD和intel吧?
AMD的产品更便宜,性价比更高,独有的内存控制器,与内存的互动更快捷。AMD自家有生产CPU,主板,显卡这三大件,所以当这三大件同时使用的时候(也就是通常说的3A机),会构成一个“蜘蛛平台”,获得额外的性能提升。蜘蛛平台最新一代是“龙”平台。
intel的CPU“绝对性能”更强,也卖的更贵。它的CPU与内存互联需要通过南桥,所以在intel主板上的内存使用效率比AMD的低一半。但intel很聪明,它开发出一个内存双通道技术,也就是说当使用两条内存并打开双通道功能的时候,内存的使用效率也能和AMD一样高。
下面哪个跟其他的不一样 a,commonjs b,requirejs c,amd d,cmd
双向绑定,可测试性的代码结构,模型视图分离的一个前端MV*框架
其中angular也提供了模型的概念和依赖管理,不过这个依赖都是要在js对象都已经定义的前提下,没有像amd/cmd提供按需加载。
我个人比较喜欢cmd(seajs),它对顶级作用域window的使用约束较多,全局对象和方法少,缺点就是很多原生库,都需要手工wrap下。
angular定义的controller一般都是全局的,我想用seajs来管理angular的代码和依赖,下面是一起使用的示例,有类似需求的童鞋可以参考下:
//?file?ng_module2.jsdefine(function(require){
var?Log?=?require('log');
return?{
init:?function(){
Log.w('Load?angular?module?:?m2');
var?ag?=?window.angular;
if(!ag){
Log.w('Error?when?load?angular?module?:?m2?:?no?angular');
return;
}
var?m2?=?ag.module('m2',?[]);
m2.filter('greet',?function(){
return?function(name)?{
return?'Hello,?'?+?name?+?'!';
};
});
}
};
});//?file?ng_module1.js
define(function(require){
require('module/demo/ng_module2').init();
var?Log?=?require('log');
return?{
init:?function(){
Log.w('Load?angular?module?:?m1');
var?ag?=?window.angular;
if(!ag){
Log.w('Error?when?load?angular?module?:?m1?:?no?angular');
return;
}
var?m1?=?ag.module('m1',?['m2']);
m1.directive('testDateFormat',?function(){
return?function(scope,?el,?attrs,?ctrl){
var?format?=?'yyyy-MM-dd';
var?updateTime?=?function(){
el.text(new?Date().format(format));
};
//?watch?scope.format?in?ctrl
scope.$watch('format',?function(value){
format?=?value;
updateTime();
});
updateTime();
}
});
}
};
});//?file?demo/ng1.js
//?初始化页面?
define(function(require){
var?Log?=?require('log');
require('module/demo/ng_module1').init();
var?agAdaptor?=?require('x/x.ex.angular');
return?{
initPage:?function(from,?pageInfo,?params){
var?TestCtrl?=?function($scope){
$scope.format?=?'yyyy/MM/dd';
};
window.TestCtrl?=?TestCtrl;
agAdaptor.init(['m1'],?'TestCtrl',?'ngContext');
},?
dump?:?''?
};
});//?file?x/x.ex.angular.js
//?angular?bootstrap适配——在bootstrap之前动态修改下dom
define(function(require){
var?$?=?require('jquery');
var?Log?=?require('log');
return?{
init:?function(modules,?ctrlName,?contextId){
if(!window.angular){
Log.w('No?angluar?defined!',?'WARN');
return;
}
var?_context?=?$('#'?+?contextId);
this.initCtrl(_context,?ctrlName);
this.initModel(_context);
this.bootstrapAngular(modules);
},
//?把ng-controller补上
initCtrl:?function(_context,?ctrlName){
if(ctrlName)
_context.attr('ng-controller',?ctrlName);
},?
//?根据name把ng-model补上
initModel:?function(_context){
_context.find('[name^=f_]').each(function(){
var?_el?=?$(this);
var?name?=?_el.attr('name');
var?modelName?=?name.split('_').remove(0).join('.');
_el.attr('ng-model',?modelName);
});
},
bootstrapAngular:?function(modules){
window.angular.bootstrap(document,?modules);
}
};
});
Angular——Work?with?SeaJS
Date?format:??
Current?time?is:?
seajs.use('module/demo/ng1',?function(IPage){
IPage.initPage();
});
CMD是国内玉伯大神在开发SeaJS的时候提出来的,属于CommonJS的一种规范,此外还有AMD,其对于的框架是RequireJS
1、二者都是异步模块定义(Asynchronuous Module Definition)的一个实现;
2、CMD和AMD都是CommonJS的一种规范的实现定义,RequireJS和SeaJS是对应的实践;
3、CMD和AMD的区别:CMD相当于按需加载,定义一个模块的时候不需要立即制定依赖模块,在需要的时候require就可以了,比较方便;而AMD则相反,定义模块的时候需要制定依赖模块,并以形参的方式引入factory中。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!