Может ли Modernizr загружать сценарии асинхронно, но выполнять их по порядку? - PullRequest
7 голосов
/ 13 июля 2011

Я экспериментирую с Modernizer.load.

У меня есть это:

Modernizr.load([
      {
         load  : ['/js/jquery-1.6.1.js', '/js/jquery.tools.min.js', '/js/myscript.js']
      }
      ]);

Если я правильно понимаю, я могу использовать подобный код для асинхронной загрузки скриптов.Однако могу ли я выполнить их по порядку?Что если myscript.js требует, чтобы сначала был загружен объект jquery?

В примере, приведенном в документации для Modernizr, load ([]) может принимать свойство 'complete', параметром которого может быть функция, котораяможет загрузить другой скрипт, когда все остальное сделано.Однако, если я использую здесь функцию для загрузки моего сценария постзависимости, он загружается последовательно.В документах, в частности, говорится, что это может нанести вред производительности.

Однако, если я загружаю все асинхронно, я понятия не имею, в каком порядке они выполняются.И, конечно же, мне нужно, чтобы мои зависимости запускались первыми.

1 Ответ

12 голосов
/ 13 июля 2011

Если вы используете Modernizr.load, все файлы, включенные вами через встроенный список / хэш, будут загружены асинхронно, но каждый из них будет исполнен в том порядке, в котором вы вставьте их.

Итак, ваш пример загрузит файлы асинхронно, но выполнит их в следующем порядке:

1: /js/jquery-1.6.1.js
2: /js/jquery.tools.min.js
3: /js/myscript.js`

Вы можете упростить свой пример, кстати:

Modernizr.load(['/js/jquery-1.6.1.js', '/js/jquery.tools.min.js', '/js/myscript.js']);

Для получения дополнительной информации см. Учебное пособие Modernizr.load () в Документации или ознакомьтесь с документом Yepnopejs.com (что в принципе представляет собой Modernizr.load () по адресу на этот раз).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...