async = "async" атрибут тега <script>в html, что это значит? - PullRequest
47 голосов
/ 22 мая 2009

async="async" атрибут тега <script> в HTML, что это значит?

<script async="async" src="...."></script>

Можно увидеть здесь например

Ответы [ 5 ]

53 голосов
/ 07 марта 2010

Если атрибут async установлен во внешнем сценарии (один с src =), браузеры, которые его поддерживают, будут загружать этот сценарий в фоновом режиме, не блокируя остальное содержимое страницы. Сценарий будет выполняться всякий раз, когда закончится загрузка.

http://dev.w3.org/html5/spec/Overview.html#attr-script-async

Как я упоминал в комментарии, установка async = true, async = false или async = что угодно означает одно и то же. Они включают асинхронное поведение. Единственный способ сделать скрипт не асинхронным - полностью пропустить атрибут.

http://dev.w3.org/html5/spec/Overview.html#boolean-attributes

11 голосов
/ 15 февраля 2014

В XHTML необходимо, следовательно, отмечать атрибуты как атрибуты и их значения, а HTML - нет. Мне нравится соответствие этого принципа, поэтому я всегда использую его в виде:

async="async"

Таким образом, я могу обслуживать свои документы как application / xhtml + xml.

Если это вас не интересует, поскольку вы считаете, что подача документа в виде текста / HTML достаточно хороша, тогда вы всегда можете использовать:

async
3 голосов
/ 27 ноября 2016

Это просто означает

  1. Загрузка внешнего скрипта асинхронно (или параллельно) без блокировки анализа html.
  2. Скрипт после загрузки будет Выполнен немедленно , блокируя синтаксический анализ html.


Вот хорошая иллюстрация.

Примечание: Этот атрибут работает только для внешних скриптов (с атрибутом src), а не для встроенных скриптов.

2 голосов
/ 02 ноября 2012

Кажется, это тоже не обязательно должно быть async=async, а просто async

От Google:

Второй метод заключается в использовании атрибута, где соответствующий, который предотвращает парсинг от блокировки начальной страницы загрузить, отложив его, пока поток пользовательского интерфейса браузера не будет занят что-то еще.

https://developers.google.com/speed/docs/best-practices/mobile#DeferParsingJS

1 голос
/ 16 апреля 2014

Просто достаточно асинхронно.

Вы можете попробовать оба варианта, а затем измерить разницу в скорости страницы. Например, crictime использует для этого одно вещество.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...