Когда-то было много жарких дебатов <script>
в <head>
или <body>
.
Многие сообщения SO уже указывали, что лучшей практикой/эмпирическим правилом является размещение <script>
до конца <body>
для того, чтобы не блокировать парсер html, что привело к ускорению первой экранной краски и более быстрого доступа DOM для клиента и таким образом, лучший UX.
Это должен быть дубликат╰ (`□ ') ╯
Подождите... <script>
может быть deferred
сейчас, на самом деле довольно долгое время!
Старые сообщения сказали
отсроченный script может привести к проблемам с JS-зависимостью
Нет, не будет. Он сохраняет заказ при выполнении сразу же после разбора DOM.
Он не работает с перекрестными поставщиками
Да, он когда-то был, но сегодня он почти поддерживается всеми основными поставщиками браузеров: http://caniuse.com/#search=defer, кроме того, может возникнуть проблема с IE < 10, как отмечают комментарии.
Однако преимущества, которые он предлагает, кажутся очевидными, по крайней мере для меня, поскольку он загружает script параллельно в предыдущее время (перед началом разбора DOM), поэтому нет необходимости запрашивать script позже и сокращать времени, которое требуется для обеспечения интерактивности всей страницы.
Короче говоря, этот вопрос похож на: Любая хорошая причина не использовать
<head>
...
<script src='cdn/to/jquery' defer>
<script src='cdn/to/bootstrap' defer>
<script src='script/depends/on/jqueryandbootstrap' defer>
</head>
вместо этого:
<body>
...
<script src='cdn/to/jquery'>
<script src='cdn/to/bootstrap'>
<script src='script/depends/on/jqueryandbootstrap'>
</body>
<суб > Примечание. Это может быть "древняя" тема с большим количеством обсуждений. Однако по мере того, как веб-технологии продвигаются очень быстро, разработчики браузеров лучше и более согласуются с новыми веб-спецификациями, многие старые ответы на stackoverflow могут не обновляться. Суб >