Здравствуйте! Недавно начал знакомство с require.js. AMD - асинхронность. В моем понимании это подразумевает независимую загрузку модулей (js-скриптов). Другими словами параллельную. Но вот что я увидел в chrome dev tools:
При обычном подключении скриптов в футере:
<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>
В CDT:
При подключении через require.js:
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();
});
В первом случае браузер подгружает все скрипты параллельно, затем выполняет в порядке подключения.
Во втором случае скрипты подключаются последовательно, что занимает больше времени.
Но! В первом случае при наведении на полоски загрузки скриптов свойство blocking очень большое, а во втором маленькое. Это значит, что загрузки скриптов через AMD не блокирует дальнейшую загрузку страницы? Или в чем тогда преимущество использования AMD, кроме организации кода и установления зависимостей?