在我看来,有三个比较重要的原因:
您可以在不污染全局命名空间的情况下创建和重用模块。全局命名空间污染越严重,函数/变量冲突的可能性就越大。这意味着您定义了一个名为“foo”的函数,而另一个开发人员定义了函数“foo”=其中一个函数被覆盖。
您可以将代码构建到单独的文件夹和文件中,并且 requirejs 将在需要时异步加载它们,因此一切正常。
您可以为生产而构建。RequireJS 带有自己的构建工具,称为 R.JS,它将把你的 JavaScript 模块连接和丑化成一个(或多个)包。这将提高您的页面速度,因为用户将不得不进行更少的脚本调用并加载更少的内容(因为您的 JS 被丑化了)。
您可以看一下这个简单的演示项目:https ://c9.io/peeter-tomberg/requirejs(在 cloud9ide 中)。
要将您的模块构建到单个应用程序中,您所要做的就是安装 requirejs npm 包并运行命令:r.js -o build/build.properties.js
如果有任何问题,请走开。
编辑:
在开发中,将所有模块放在单独的文件中只是构建和管理代码的好方法。它还可以帮助您进行调试(例如“Module.js 第 17 行”而不是“scripts.js 第 5373 行”上的错误)。
对于生产,您应该使用构建工具将 javascript 连接和 uglify 到单个文件中。当您发出更少的请求时,这将有助于更快地加载页面。您提出的每个加载请求都会减慢您的页面速度。你的页面越慢,谷歌给你的分数就越少。页面越慢,您的用户就会越沮丧。您的页面越慢,您获得的销售额就越少。
如果您想了解更多关于网页性能的信息,请查看http://developer.yahoo.com/performance/rules.html