Рекомендуемое использование для асинхронных загрузчиков JavaScript - PullRequest
0 голосов
/ 31 марта 2011

Только начал изучать асинхронные библиотеки загрузки javascript, такие как lab.js и script.js . Мой вопрос о передовых методах использования этого типа шаблона асинхронной загрузки.

Я подумал о паре возможных установок:

  1. Загрузите асинхронный загрузчик вверху страницы или тег скрипта. Это позволяет выполнять сжатие и кэширование, но также блокирует во время этой начальной загрузки. Скорее всего, это не огромная сделка, так как предполагается, что эти загрузчики довольно малы (стоит ли сначала загружать css)?

  2. Имейте встроенный код асинхронного загрузчика в html, а затем сразу начните использовать для загрузки зависимостей. Это означает, что нет отдельного запроса для асинхронного загрузчика, поэтому он , вероятно, немного быстрее, но он также не загружается и не кэшируется, поэтому он должен загружаться каждый раз.

  3. Выполните классическую загрузку JS внизу страницы, чтобы сначала загружались таблицы стилей и т. Д. Поместите асинхронный загрузчик в тег блокировки скрипта внизу страницы, затем асинхронно загрузите все зависимости.

Какой сценарий наиболее часто используется, как люди обычно загружают свои js асинхронно ??

1 Ответ

5 голосов
/ 31 марта 2011
<head>
   <!-- data-main attribute tells require.js to load
        scripts/main.js after require.js loads. -->
   <script data-main="scripts/main" src="scripts/require.js"></script>
</head>

Я рекомендую ( 1 ) загрузить его в голову.

Не стоит включать его в ваш html ( 2 ), потому что он останавливает кеширование. Не говоря уже о том, что вы должны вставлять это везде, и это просто безобразно.

Допустимая альтернатива ( 3 ) (но лично этого не стоит) - создать тег <script> с использованием JavaScript и вставить его в вашу голову. Если это делается в нижней части вашего тела, следует надеяться, что ваш html / css полностью загрузится, прежде чем ваш асинхронный загрузчик запустится.

В качестве приятного бонуса require.js позволяет вам дать указатель на ваш основной скрипт и он загрузит тот, который когда-то требует загрузки. Затем вы можете выполнить большую часть загрузки вашего асинхронного файла в основном скрипте и установить четко определенный набор требований для каждого файла с точки зрения того, что им требуется на странице.

Причины асинхронной загрузки вашего JavaScript включают

  • быстрая загрузка исходного HTML / CSS.
  • Ваши заголовки остаются "чистыми"
  • Ваш javascript и html четко разделены.
  • Вы можете динамически загружать файлы на основе обнаружения функций.
  • Вы можете четко определить ваши межфайловые зависимости.
  • Вы можете загружать библиотеки модульно (например, YUI) вместо загрузки всей библиотеки (например, jQuery).

И этот список можно продолжить. Очень просто и аккуратно включить строку, подобную приведенной выше, в свой общий вид / общий вид или главную страницу.

Расширение динамической загрузки файлов JavaScript на основе обнаружения функций. Я имею в виду, что вы можете просматривать DOM, для которого должны быть загружены файлы JavaScript. Например, если у вас есть <ul class="image-slider"> на вашей странице, вы можете определить это с помощью стандартных селекторов CSS и загрузить файл image-slider.js, чтобы незаметно улучшить его с помощью JavaScript.

Это означает, что вам не нужно вручную включать его на каждой странице с помощью ползунка изображения. Вам не нужно включать на каждой странице по умолчанию, и вы можете использовать одну часть информации (имя класса), чтобы применить визуальный стиль и функциональность.

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