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的6个Tab选项卡插件
Sep 03 Javascript
基于Jquery的简单图片切换效果
Jan 06 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 Javascript
jQuery动态添加删除select项(实现代码)
Sep 03 Javascript
可插入图片的TEXT文本框
Dec 27 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
May 10 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
vue中watch的用法汇总
Dec 28 Vue.js
火狐下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中遍历二维数组的几种方法详解
2013/06/08 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
javascript实现的动态文字变换
2007/07/28 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
关于python多重赋值的小问题
2019/04/17 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Python通过字典映射函数实现switch
2020/11/06 Python
vue项目实现分页效果
2021/03/24 Vue.js
课改先进个人汇报材料
2014/01/26 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
文明村镇申报材料
2014/05/06 职场文书
社团活动总结书
2014/06/27 职场文书
青年文明号申报材料
2014/12/23 职场文书
客户答谢会致辞
2015/01/20 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
复兴之路观后感
2015/06/02 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python