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的cookie的用法
Jan 10 Javascript
JS 精确统计网站访问量的实例代码
Jul 05 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
js实现简单锁屏功能实例
May 27 Javascript
微信小程序通过api接口将json数据展现到小程序示例
Jan 20 Javascript
Vue分页组件实例代码
Apr 17 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 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中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python实现自动登录
2018/09/17 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
Java基础知识面试要点
2016/07/29 面试题
Final类有什么特点
2012/04/25 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
工作失职检讨书范文
2014/01/16 职场文书
教师网络培训感言
2014/03/09 职场文书
员工入职担保书范文
2014/04/01 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
聘任证明怎么写
2015/03/02 职场文书
加入学生会自荐书
2015/03/05 职场文书
雷锋观后感
2015/06/10 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
婚宴父亲致辞
2015/07/27 职场文书
入党转正申请书范文
2019/05/20 职场文书
python基础之停用词过滤详解
2021/04/21 Python
Django路由层如何获取正确的url
2021/07/15 Python