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插件制作 提示框插件实现代码
Aug 17 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
javascript中Array数组的迭代方法实例分析
Feb 04 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
详解使用webpack构建多页面应用
Dec 21 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
vue中实现高德定位功能
Dec 03 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
Apr 27 Javascript
JavaScript实现打字游戏
Feb 19 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
Laravel学习教程之View模块详解
2017/09/18 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
python WindowsError的错误代码详解
2017/07/23 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Python3爬虫全国地址信息
2019/01/05 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
毕业学生推荐信
2013/12/01 职场文书
大学生党课思想汇报
2013/12/29 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
房贷工资证明范本
2015/06/12 职场文书
活动简报范文
2015/07/22 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
Python+Appium新手教程
2021/04/17 Python
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏