Задать вопрос
@TheMafia

Ускоряет ли requirejs время загрузки скриптов?

Здравствуйте! Недавно начал знакомство с 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:
SQ82z.png
При подключении через 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();
});

Lavqw.png
В первом случае браузер подгружает все скрипты параллельно, затем выполняет в порядке подключения.
Во втором случае скрипты подключаются последовательно, что занимает больше времени.
Но! В первом случае при наведении на полоски загрузки скриптов свойство blocking очень большое, а во втором маленькое. Это значит, что загрузки скриптов через AMD не блокирует дальнейшую загрузку страницы? Или в чем тогда преимущество использования AMD, кроме организации кода и установления зависимостей?
  • Вопрос задан
  • 3795 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
rumkin
@rumkin
requirejs работает так же параллельно, но зависимые скрипты он загружает после того как выполнит очередной скрипт и узнает что необходимо загружать в следующую очередь. Для того чтобы избежать этого используют различные техники, например прекомпиляцию. Подробнее тут habrahabr.ru/post/181536/.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы