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中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
Oct 12 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
Oct 29 Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
js实现上下左右弹框划出效果
Mar 08 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
详解vue+css3做交互特效的方法
Nov 20 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 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
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
JS动画效果代码3
2008/04/03 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
基于Python实现文件大小输出
2016/01/11 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python如何实现图片压缩
2020/09/11 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
Python 求向量的余弦值操作
2021/03/04 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
人力资源总监工作说明
2014/03/03 职场文书
表彰会主持词
2014/03/26 职场文书
贷款承诺书范文
2014/05/19 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
Pygame Time时间控制的具体使用详解
2021/11/17 Python