Javascript模块加载技术的几点思考

不久前一个朋友问我对requirejs和seajs使用前,我已经在你的公司问他有一个书面的Javascript库,或Javascript框架,他的回答是不是他刚才听到的,像requirejs和seajs是一种新的技术,非常有价值,所以我想用它。

这个问题的用户引起我思考Javascript模块技术是装的,我给了一个Javascript库的基本结构写的基本模型的文章,其实写这篇文章的原因,因为我想用requirejs或seajs等技术来重新设计我写的Javascript库,当我这项技术的深入了解,我发现使用模块加载系统解决的Javascript库的通用代码和业务代码解耦问题是不正确的,模块的加载系统的范围是解决不同的Javascript库之间的依赖问题,而不是帮助你如何开发一个Javascript库。

那么Javascript模块加载系统是什么呢

模块系统主要解决不同Javascript库中的命名冲突以及不同Javascript库之间的依赖问题。模块加载系统适用于大型Web前端应用程序或大型Web前端应用程序。

一般大型的Web应用程序的页面,页面很丰富,业务是非常复杂的,但随着时间的推移,页面功能经常变化,使前端开发人员经常要开发的功能模块的新功能,但对各功能模块的实际业务可能相互渗透相互依赖,关系,当页面复杂和令人困惑的,各种前端库之间的关系,管理和控制中存在的问题,这个时候很难将发送模块加载系统。

对于大多数程序员来说,能买得起这样一个大的Web前端应用独立的机会不太多,和小Web应用前端开发的机会将越来越多,如企业网站项目,这类项目使用Javascript库的依赖性小图书馆良好的控制是必要的不需要介绍什么模块管理系统,甚至如果事实上很多中小互联网公司,像上面的这些小应用程序或对某些特定的场景,所以我个人觉得Web前端项目上我们终于可以形成一个独立的Javascript库,该库的功能类似于jQuery库的类型:一个数插件库主图书馆的主要模式是为了解决常见的问题,它应该可以重用和迁移,而插件库往往是目标和业务相关的代码,但为了缩小主库和插件库之间的差异,所以我在库函数中添加了名称空间。

Javascript模块的加载和Hadoop技术是一样的,也就是说它们是在大系统中,它们只有在一定的条件下才能发挥作用,所以这些技术都是从大型互联网公司推出的,因为大型互联网公司的应用复杂得一定要解决问题。当你的系统还处于起步阶段,这些技术往往是谨慎的,我们应该找到解决问题的最简单、最有效的方式,如果你认为这个系统会越来越大,所以你应该使用这些技术接口预留,如果用的太早,可能是当系统规模扩大后,你对代码进行重构,价格会更高。

模块加载系统,是解决大问题的Web前端应用模块之间的解耦最合适的场景,如果我们想写一个新的Javascript文件立即使用模块加载技术,这是不是有点涉嫌滥用技术,我们不仅要考虑如何使用它,以及如何使用也要考虑使用的技术,它有没有价值的问题。

最后我想说的是,我认为中小型应用程序大小的Web前端的生产部署,因为Javascript是没有那么复杂,所有的外部Javascript文件打包成一个Javascript文件是最好的,这样的好处是减少HTTP请求的数量,使用模块加载技术将允许你包文件,操作很麻烦,可以不做(如requirejs和seajs模块文件作为一个单元,每个单元是一个单独的文件),这是与减少HTTP方案的目的。