Когда загрузчики JavaScript работают медленнее, чем при традиционном подходе?

У меня есть приложение с кучей ресурсов. Прочитав о загрузчиках javascript, я решил посмотреть, какой прирост я получу от асинхронной загрузки ресурсов. К моему удивлению, я обнаружил, что использование загрузчика было заметно медленнее (секундомер не требовался). Это заставило меня задуматься, были ли у других аналогичные результаты и что разработчик должен учитывать в отношении того, когда использовать или не использовать загрузчик ресурсов javascript.

Вот некоторые подробности о моих тестах:

  • На данный момент есть 60 ресурсов (в основном скрипты)
  • Из-за иерархии зависимостей скрипты приходилось загружать примерно 8 пакетами.
  • В основном использовался Firefox (но пробовал и в Chrome)
  • Запустил тесты как на Ubunutu, так и на Windows
  • Использование загрузчика (в моем случае YepNope) добавляет немного накладных расходов.
  • Я написал небольшой класс загрузчика, чтобы упростить взаимодействие с YepNope.
  • Исходный код находится на github (запустите тесты.html и тесты-загрузчик.html)

Когда я говорю «медленнее», я не говорю, что это ужасно медленно. Просто мне пришлось потратить некоторое время, чтобы настроить это, и результаты были хуже, чем до того, как я начал.

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


person Mario    schedule 18.08.2011    source источник
comment
Я предполагаю, что есть причины этого не делать, но не могли бы вы посадить эти 60 ресурсов на диету и немного уменьшить их число? Возможно, это набор плагинов jQuery?   -  person Bojangles    schedule 18.08.2011
comment
Вы используете yepnope и проверяете условия? Или просто использовать его, чтобы загрузить их? Если вы не выполняете условную загрузку, вы можете минимизировать и объединить свои скрипты, что сэкономит вам не менее 50+ HTTP-запросов.   -  person Trolleymusic    schedule 20.04.2013
comment
Я только что видел, что этому почти два года... Вы его решили? :)   -  person Trolleymusic    schedule 20.04.2013


Ответы (1)


Ресурсы загружаются асинхронно? Прежде всего, является ли используемое вами устройство многоядерным? Асинхронный загрузка полезна только если у вас многоядерный компьютер, ноутбук, планшет, телефон или другое устройство.

Во-вторых, качественный ли загрузчик вы используете? Пробуйте разные загрузчики, насколько я понимаю, сейчас нет стандартных загрузчиков типа "это хорошо", так что тот, что у вас есть, может быть сломан. Другой может работать.

Вы уверены, что браузеры еще не оптимизировали загрузку ресурсов страницы? Использование альтернативного способа может фактически помешать новым и более быстрым браузерам, замедляя загрузку страниц.

Лично я не использовал эти загрузчики, это только мои предположения.

person AP-Green    schedule 18.08.2011
comment
Хороший момент о необходимости многоядерности. Я также отметил, что не все загрузчики используют подобный подход. Я пробовал head.js. Хотя он все еще медленнее, чем традиционный подход (немного), он, похоже, работает лучше. - person Mario; 21.08.2011