Использование атрибута <script>
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * из них: * 100 *
* * * *и оба поддерживают необязательный обработчик onload
для решения общей необходимости выполнить инициализацию, которая зависит от сценария.Разница между async
и defer
заключается в том, что сценарий выполняется.Каждый сценарий async
выполняется при первой возможности после завершения загрузки и до события window
load
.Это означает, что вполне возможно (и вероятно), что сценарии async
выполняются не в том порядке, в котором они встречаются на странице.Сценарии defer
, с другой стороны, гарантированно выполняются в том порядке, в котором они встречаются на странице.Это выполнение начинается после того, как синтаксический анализ полностью завершен, но до события document
DOMContentLoaded
.
defer
поддерживается IE4 +, Firefox 3.5+, Chrome 2+,и Safari 4 +. async
поддерживается Firefox 3.6+, Chrome 7+ и Safari 5+.( Нет IE поддержка!)
defer
- ваш лучший выбор.Скрипты загружают параллельно и исполняют синхронно (по порядку).Это также лучше поддерживается и более предсказуемо, чем async
.(См. Также этот очень подробный анализ async
/ defer
.)
<script defer type="text/javascript" src="script.js"></script>