Какие браузеры поддерживают <script async = "async" />? - PullRequest
189 голосов
/ 02 декабря 2009

1 декабря 2009 года Google объявил о поддержке асинхронного отслеживания Google Analytics .

Асинхронное отслеживание достигается с помощью директивы async для тега <script>.

Какие браузеры поддерживают директиву async (<script async="async" />) и с какой версии?

Ответы [ 6 ]

160 голосов
/ 02 декабря 2009

Асинхронная поддержка, как указано в Google, состоит из двух частей:

  • используя скрипт на вашей странице (скрипт поставляется Google), чтобы записать тег в DOM.

  • этот скрипт имеет атрибут async = "true", чтобы сообщить совместимым браузерам, что он может продолжить рендеринг страницы.

Первая часть работает в браузерах без поддержки тегов <script async.., что позволяет им загружать асинхронные файлы с помощью "хака" (хотя и довольно надежного), а также позволяет отображать страницу без ожидания получения ga.js. ,

Вторая часть касается только совместимых браузеров, которые понимают асинхронный атрибут html

  • FF 3.6+
  • FF для Android Все версии
  • IE 10+ (начиная с предварительного просмотра 2)
  • Chrome 8+
  • Chrome для Android Все версии
  • Safari 5.0 +
  • iOS Safari 5.0 +
  • Браузер Android 3.0+ (сота включен)
  • Опера 15.0 +
  • Opera Mobile 16.0 +
  • Opera Mini Нет (по состоянию на 8.0)

"Правильный html5" способ указать асинхронность - это <script async src="...", а не <script async="true". Однако изначально браузеры не поддерживали этот синтаксис и не поддерживали установку свойства script для ссылочных элементов. Если вы хотите этого, список изменится:

  • FF 4 +
  • IE 10+ (превью 2 и выше)
  • Chrome 12 +
  • Chrome для Android 32 +
  • Safari 5.1 +
  • Нет версий для Android
60 голосов
/ 20 июля 2011

На этот вопрос, на самом деле, есть две части.

  1. В: Какие браузеры поддерживают атрибут «async» для тега сценария в разметке?

    A: IE10p2 +, Chrome 11+, Safari 5+, Firefox 3,6 +

  2. В: Какие браузеры поддерживают новую спецификацию, определяющую поведение свойства async в JavaScript для динамически создаваемого элемента сценария?

    A: IE10p2 +, Chrome 12+, Safari 5.1+, Firefox 4 +

Что касается Opera, они очень близки к выпуску версии, которая будет поддерживать оба типа асинхронности. Я тесно работал с ними над этим, и это должно скоро выйти (я надеюсь!).

Более подробную информацию об упорядоченной асинхронности (иначе, async = false) можно найти здесь: http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order

Кроме того, чтобы проверить, поддерживает ли браузер новое динамическое асинхронное поведение свойства: http://test.getify.com/test-async/

25 голосов
/ 08 февраля 2012

Полный список версий браузера, поддерживающих параметр async, доступен здесь

10 голосов
/ 02 декабря 2009

С вашей указанной страницы:

http://googlecode.blogspot.com/2009/12/google-analytics-launches-asynchronous.html

Firefox 3.6 - первый браузер, официально предложивший поддержку этой новой функции. Если вам интересно, вот более подробная информация об официальной спецификации HTML5 .

1 голос
/ 25 декабря 2012

async в настоящее время поддерживается всеми последними версиями основных браузеров. Уже несколько лет поддерживается в большинстве браузеров.

Вы можете отслеживать, какие браузеры поддерживают асинхронность (и откладывать) на веб-сайте MDN здесь:
https://developer.mozilla.org/en-US/docs/HTML/Element/script

0 голосов
/ 22 августа 2013

Только что взглянул на DOM (document.scripts [1] .attributes) этой страницы, которая использует Google Analytics. Я могу сказать вам, что Google использует async = "".

[type="text/javascript", async="", src="http://www.google-analytics.com/ga.js"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...