Javascript блокирует загрузку контента на ваш сайт во время страницы
-
20-08-2019 - |
Вопрос
Это лучший способ включить JavaScript на вашем сайте? http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/ р>
Решение
Лучший способ включить JavaScript на вашем веб-сайте - это включить как можно меньше файлов на конце страницы * после загрузки всей разметки и других ресурсов. Такое действие также дает дополнительное преимущество, заключающееся в поощрении & Квоты; прогрессивное улучшение < !> Quot; Модель развития.
* Yahoo активно тратит огромные деньги на исследование этого вопроса, и у него есть преданные, работающие полный рабочий день люди (включая блестящего Стива Соудерса), которые публикуют свои результаты онлайн и в форме книги . р>
Другие советы
Это не похоже на ситуацию, подходящую для всех, поэтому я часто прибегаю к этой знаменитой статье, чтобы помочь мне ответить на такие вопросы:
Это было упомянуто в одном из подкастов, но если вы разместите javascript в отдельном домене или даже поддомене, браузер может открыть больше соединений и загрузить как js, так и остальную часть страницы на в то же время. Вот почему многие люди предпочитают ссылаться на экземпляр jQuery от Google, а не на свой собственный. Этот пример также имеет преимущества для кэширования, но основной принцип сохраняется.
В двух словах, в статье говорится о том, чтобы динамически подключать <script>
узлы в DOM
для параллельной загрузки файлов сценариев. Это работает и ничего нового.
Однако в нем не упоминается самый большой недостаток метода: хотя скрипты будут загружаться параллельно, порядок их исполнения не является детерминированным. IE выполнит их в том порядке, в котором они заканчивают загрузку, тогда как Firefox выполнит их в том порядке, в каком они подключены в DOM.
Это проблема. Например, скажем, сценарий A и сценарий B добавляются с использованием этой техники. Теперь представьте, что скрипт A - это jQuery, а скрипт B делает это:
$(document).ready(function(){...})
В IE вы облажались, если по какой-либо причине (например, сетевой трафик, потеря кэша) скрипт B заканчивает загрузку до скрипта A, потому что он будет выполнен до загрузки jQuery.
См. эту статью. для лучшего объяснения.
ответ Рекса М - это путь.