随着js社区不断发展,js功能更加强大,细数js的几种 module 方式。

整理了七种模块化方式

1.作为新手,练习小的demo,比较喜欢的方式.不适合大的项目。

<!--html-->
<script>
// module1 code
// module2 code
</script>

手动添加注释来标明模块范围,类似于CSS里的分节注释:

/* -----------------
* TOOLTIPS
* ----------------- */

所有js代码一个js文件写穿,很容易查看,文件较少。原始的模块方案。

优点:浏览代码容易,可以通过锚点,快速找到代码。

缺点:文件太长,难以维护。没有实质性的好处,比如(模块化作用域,依赖管理,模块间错误隔离)。

2.多script标签

<!--html-->
<script type="application/javascript" src="PATH/polyfill-vendor.js" ></script>
<script type="application/javascript" src="PATH/module1.js" ></script>
<script type="application/javascript" src="PATH/module2.js" ></script>
<script type="application/javascript" src="PATH/app.js" ></script>

把各个模块拆分成独立文件,有3个好处:

  • 通过控制资源加载顺序来处理模块依赖

  • 有模块间错误隔离(module1.js初始化执行异常不会阻断module2.jsapp.js的执行)

  • 各模块位于单独文件,切实提高了维护体验

但还存在2个问题:

  • 没有模块作用域

  • 资源请求数量与模块化粒度相关,需要寻找性能与模块化收益的平衡

最新文章

  1. 【HTML5】HTML5本地数据库(Web Sql Database)
  2. SPAN的高度问题
  3. C#设计模式——职责链模式(Chain Of Responsibility Pattern)
  4. iPhone的震动 基于SDK8.0 Swift实现
  5. 【源码】基于SQLite实现CMS论坛(BBS)----附件SQLite可视化界面客户端
  6. 80. Remove Duplicates from Sorted Array II
  7. URL参数加密解密
  8. mybatis缓存清除方法
  9. php 实时推送代码
  10. Zend Guard Loader和Zend Optimizer的安装(更新中)
  11. ASP.NET State Service
  12. gulp实时编译less,压缩合并requirejs模块文件
  13. js几秒以后倒计时跳转示例
  14. Java (三、数组)
  15. Docker镜像拉不下来?试试这些
  16. 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记
  17. 『转载』hadoop2.x常用端口、定义方法及默认端口
  18. WIN7系统怎样增加C盘空间
  19. django+uwsgi+nginx数据表过大引起&quot;out of memory for query result&quot;
  20. Wifidog初分析

热门文章

  1. LeetCode赛题394----Decode String
  2. 自动生成了一本ES6的书
  3. bat 常见问题及小实例
  4. 绛河 初识WCF5
  5. Sqlite EF6注册
  6. javascript进行百度换肤 和显示隐藏一个窗口的操作
  7. cocos2dx中node的pause函数(lua)
  8. 《C++ Primer Plus》读书笔记之五—函数-C++的编程模块
  9. January 02 2017 Week 1st Monday
  10. 如何去掉android的标题栏