Я оцениваю существующие ресурсы для оптимизации загрузки script, но я читал в некоторых статьях, таких как this, относится к более раннему блоку браузеров другие загрузки до тех пор, пока эта последовательная фаза загрузки script не будет завершена. Я проверяю Modernizr (yepnope.js), headjs и ControlJs как кандидатов. Но нужно ли использовать эти инструменты для параллельной загрузки script в современных браузерах?
Современные браузеры загружают скрипты параллельно или последовательно?
Ответ 1
Я считаю, что по умолчанию большинство браузеров сегодня фактически загружают скрипты параллельно; но браузер по умолчанию не будет выполнять скрипты параллельно. Например, в следующем коде скрипты будут загружаться параллельно. На изображении мы видим, что Fast1.js и Fast2.js загружаются очень быстро, но в зависимости от времени в консоли браузера Fast2.js выполняется через 3 секунды после выполнения Fast1.js.
Кроме того, что-то еще нужно иметь в виду, так это то, что порядок файлов может иметь значение. Файл Backbone.js зависит от файла underscore.js. Если мы изменили порядок этих файлов, где bacbone.js перед underscore.js, будет поднята ошибка.
<html >
<head>
<title></title>
<script src="scripts/fast1.js" type="text/javascript"></script>
<script src="scripts/libs/jquery-1.8.3.js" type="text/javascript"></script>
<script src="scripts/libs/underscore.js" type="text/javascript"></script>
<script src="scripts/libs/backbone.js" type="text/javascript"></script>
<script src="scripts/fast2.js" type="text/javascript"></script>
</head>
<body>
Hello
<script type="text/javascript">
console.log("html: " + Date());
</script>
<img src="imgs/bImg.png" />
</body>
</html>
Здесь код для файла JavaScript Fast1.js и Fast2.js
console.log("Fast 1: " + Date())
При загрузке Script я использую Require.js. Это также дает возможность организовать ваш код в модули, которые находятся в отдельных файлах.
Вот сообщение в блоге, которое я создаю в браузере Script Загрузка: Браузер Script Загрузка
Вот несколько статей по Script погрузка:
Ответ 2
Большинство браузеров загружают их последовательно. Однако есть атрибут async
, который можно поместить в тег script
, чтобы вызвать его по-разному.
MDN объясняет, что тег script
работает очень хорошо.
https://developer.mozilla.org/en-US/docs/HTML/Element/Script