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 相关文章推荐
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
Aug 21 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
JS区分Object与Aarry的六种方法总结
Feb 27 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
js实现自动锁屏功能
Jun 02 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开发需要注意的安全问题
2010/09/01 PHP
微信API接口大全
2015/04/15 PHP
PHP实现简单日历类编写
2020/08/28 PHP
javascript preload&lazy load
2010/05/13 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
js实现随机数小游戏
2019/06/28 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
Python中偏函数用法示例
2018/06/07 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
接口可以包含哪些成员
2012/09/30 面试题
职业生涯规划书前言
2014/04/15 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB