У мене є кілька питань по приводу атрибутів asyncі deferдля <script>тега , який до мого розуміння роботи тільки в HTML5 браузерів.
Один з моїх сайтів має два зовнішніх файли JavaScript, які наразі сидять над </body>тегом; перший єjquery Отримано з Google, а другий - локальний зовнішній сценарій.
З урахуванням швидкості завантаження сайту
Чи є якась перевага в додаванні
asyncдо двох сценаріїв, які я маю внизу сторінки?Чи буде якась перевага в додаванні цього
asyncваріанту до двох сценаріїв і розміщенню їх у верхній частині сторінки в розділі<head>?- Чи означає це, що вони завантажуються під час завантаження сторінки?
- Я припускаю, що це спричинить затримки для браузерів HTML4, але чи пришвидшить завантаження сторінки для браузерів HTML5?
Використання <script defer src=...
- Чи вплине навантаження двох сценаріїв всередині
<head>атрибутом такdeferсамо, як і раніше у скриптів</body>? - Ще раз припускаю, що це уповільнить браузери HTML4.
Використання <script async src=...
Якщо у мене є два сценарії з asyncувімкненою
- Чи завантажували б їх одночасно?
- Або по черзі з рештою сторінки?
- Чи стає тоді порядок сценаріїв проблемою? Наприклад, один сценарій залежить від іншого, тому якщо один завантажується швидше, другий може не виконуватись правильно і т.д.
Нарешті, мені найкраще залишити речі такими, якими вони є, доки HTML5 більше не використовується?
deferце те саме, що розміщення скриптів у нижній частині HTML, що є звичним протягом багатьох років.

asyncє новим (ish), алеdeferє частиною IE з IE4.deferбуло додано до інших браузерів набагато недавно, але старіші версії цих браузерів, як правило, зависають набагато менше.