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 相关文章推荐
使图片旋转的3种解决方案
Nov 21 Javascript
JS实现简单的顶部定时关闭层效果
Jun 15 Javascript
下拉框select的绑定示例
Sep 04 Javascript
一个JavaScript去除字符串末尾的空白实例代码
Sep 22 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
Aug 26 Javascript
jQuery实现的经典滑动门效果
Sep 22 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
D3.js实现拓扑图的示例代码
Jun 30 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 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中的登陆login
2007/01/18 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Django rest framework实现分页的示例
2018/05/24 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
关于python 跨域处理方式详解
2020/03/28 Python
Python是怎样处理json模块的
2020/07/16 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
岗位职责怎么写
2014/03/14 职场文书