javascript模块化是什么及其优缺点介绍


Posted in Javascript onSeptember 02, 2013

如今backbone、emberjs、spinejs、batmanjs 等MVC框架侵袭而来。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模块化的JavaScript扑面而来。web前端已经演变成大前端,web前端的发展速度之快。

1)我们来看看什么是模块化?
模块化是一种将系统分离成独立功能部分的方法,可将系统分割成独立的功能部分,严格定义模块接口、模块间具有透明性。javascript中的模块在一些C、PHP、java中比较常见:

c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import导入包
此中都有模块化的思想。

2)模块化的优缺点:

a>优点:
可维护性
1.灵活架构,焦点分离
2.方便模块间组合、分解
3.方便单个模块功能调试、升级
4.多人协作互不干扰
可测试性
1.可分单元测试

b>缺点:
性能损耗
1.系统分层,调用链会很长
2.模块间通信,模块间发送消息会很耗性能

3)最近的项目中也有用到模块化,使用的是seajs,但是当引用到jquery,jquery easyui/或者jquery UI组件时,有可能会用到很多jquery插件,那这样要是实现一个很复杂的交互时,模块间的依赖会很多,使用define()方法引入模块会很多,不知有么有什么好的方法?

4)附:
内聚度
内聚度指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。好处也很明显,当把相关的任务分组后去阅读就容易多了。 设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。

耦合度
耦合度则是指模块之间的关联程度的度量。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。与内聚度相反,在设计时应尽量追求松散耦合的系统。

Javascript 相关文章推荐
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
Prototype Number对象 学习
Jul 19 Javascript
js左侧多级菜单动态的解决方案
Feb 01 Javascript
JavaScript 保存数组到Cookie的代码
Apr 14 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
Mar 22 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 #Javascript
js的alert弹出框出现乱码解决方案
Sep 02 #Javascript
javascript中的window.location.search方法简介
Sep 02 #Javascript
js Math 对象的方法
Sep 01 #Javascript
javascript ready和load事件的区别示例介绍
Aug 30 #Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
Aug 30 #Javascript
JS下拉缓冲菜单示例代码
Aug 30 #Javascript
You might like
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
JS的数组迭代方法
2015/02/05 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python计算回文数的方法
2015/03/11 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
委托书如何写
2014/08/30 职场文书
代收款委托书范本
2014/10/01 职场文书
员工年度工作总结2015
2015/05/18 职场文书
实践论读书笔记
2015/06/29 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
python pygame 开发五子棋双人对弈
2022/05/02 Python
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android