Модули AMD, такие как requirejs, могут помочь сэкономить на обмене данными по сети, если возникает случай, когда загрузка модуля никогда не требуется. Но даст ли это вообще какую-либо выгоду, когда загрузка модуля неизбежна, например, загрузка общих библиотек, таких как jQuery и загрузочные файлы javascript.
Дает ли асинхронная загрузка модуля какую-либо выгоду, когда загрузка модуля неизбежна?
Ответы (1)
Когда загрузка модуля неизбежна, requirejs вообще не дает никакой выгоды. Наоборот, это вредит вашей работе. Это связано с тем, что загрузка ресурса скриптом всегда медленнее, чем загрузка его через анализатор html. Таким образом, в целом сценарии, загруженные через тег <script>
, будут быстрее, чем загрузка через ajax, а затем eval
ing. То же самое касается тегов <img>
и любого статического ресурса.
AMD предлагает преимущества только в том случае, если ваши сценарии слишком велики и вы хотите загружать модули постепенно, а не все сразу. Если возникает случай, когда модуль может быть вообще не нужен, то есть выигрыш с точки зрения проходимости сети и пропускной способности, то в таких случаях его обязательно нужно использовать.
Такие библиотеки, как jQuery и bootstrap, обычно требуются заранее, нет смысла делегировать их AMD.