Javascript 需要js和加载脚本的时间
我有一个关于通过require.js加载脚本的问题。据我所知,异步加载是指所有脚本独立加载,而同步加载是指每个脚本逐个加载。但我看到了相反的情况: 没有require.js,比如:Javascript 需要js和加载脚本的时间,javascript,requirejs,Javascript,Requirejs,我有一个关于通过require.js加载脚本的问题。据我所知,异步加载是指所有脚本独立加载,而同步加载是指每个脚本逐个加载。但我看到了相反的情况: 没有require.js,比如: <script type="text/javascript" src="templates/js/new/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javas
<script type="text/javascript" src="templates/js/new/jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript" src="templates/js/new/eventTrackerManager.v.1.0.js"></script>
<script type="text/javascript" src="templates/js/new/constants.js"></script>
<script type="text/javascript" src="templates/js/new/utils.js"></script>
...
require.config({
baseUrl: "templates/js/new/",
paths: {
"jQuery": "lib/jquery-2.0.3.min",
"jQueryUI" : "lib/jquery-ui-1.10.3.custom.min",
"Utils" : "modules/utils",
"contactform" : "modules/contactform"
...
},
shim: {
"jQueryUI": {
exports: "$",
deps: ['jQuery']
}
}
});
require(["contactform"], function(CF) {
CF.init();
});
正如你所看到的,没有AMD的版本要快得多。我做错了什么?AMD本身并没有让你的js更快。它为您提供了更好的代码组织,并避免了js库的冲突 @jfriend00的评论解释了为什么在应用了requirejs之后速度会更慢 但是,requirejs提供了一个名为的优化工具,它可以优化您的js代码,并通过将代码片段合并到更大的js文件中来提高速度
有关详细信息,请参阅。当您提到
r.js
时,您是指RequireJS优化工具吗?在您的第一个示例中,有四个连续的
标记,一个好的浏览器会并行地获取每个脚本的.js文件,然后依次执行。@rhgb否,对不起,我有点困惑。当然,我的意思是要求。js@jfriend00但在第二个示例中,脚本一个接一个地加载,然后以相同的方式执行。这是否意味着第一个例子的性能更好?请看我下面的答案。require.js提供更好的结构,r.js提供更好的性能。