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 相关文章推荐
通过Unicode转义序列来加密,按你说的可以算是混淆吧
May 06 Javascript
javascript getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
AngularJS基础学习笔记之简单介绍
May 10 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
VSCode配置react开发环境的步骤
Dec 27 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 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效率,提高php性能的一些方法
2011/03/24 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
utf8的编码算法 转载
2006/12/27 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
删除节点的jquery代码
2014/01/13 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
django框架auth模块用法实例详解
2019/12/10 Python
Tensorflow 多线程设置方式
2020/02/06 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python链表类中获取元素实例方法
2021/02/23 Python
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
机电一体化应届生求职信范文
2014/01/24 职场文书
学前班语言教学计划
2015/01/20 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书