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 相关文章推荐
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 Javascript
javascript学习笔记之函数定义
Jun 25 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
Dec 08 Javascript
js给table赋值的实例代码
Oct 13 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
js实现移动端编辑添加地址【模仿京东】
Apr 28 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 Javascript
微信小程序实现日历签到
Sep 21 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 组件化编程技巧
2009/06/06 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
php批量修改表结构实例
2017/05/24 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
python实现自动更换ip的方法
2015/05/05 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
社区活动邀请函范文
2014/01/29 职场文书
大学新学期计划书
2014/04/28 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
维稳承诺书
2015/01/20 职场文书
中秋节慰问信
2015/02/15 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
Python 多线程之threading 模块的使用
2021/04/14 Python
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
浅谈Python numpy创建空数组的问题
2021/05/25 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android