【问题标题】:Which browsers support <script async="async" />?哪些浏览器支持 <script async="async" />?
【发布时间】:2010-12-22 11:43:21
【问题描述】:

2009 年 12 月 1 日,Google 宣布支持 asynchronous Google Analytics tracking

异步跟踪是使用 &lt;script&gt; 标记的 async 指令实现的。

哪些浏览器支持异步指令 (&lt;script async="async" /&gt;) 以及从哪个版本开始?

【问题讨论】:

  • 就在您链接到的那个页面上:“Firefox 3.6 是第一个正式提供支持此新功能的浏览器”FWIW 这是一个 HTML5 功能,正在迅速获得越来越好的支持。跨度>
  • HTML5 规范说 async="true" 是非法的。作为一个布尔型 HTML 属性,该属性的存在表示“真”,而该属性的不存在则等于“假”。如果该属性存在,则该属性的唯一有效值是“”和“异步”。
  • 这里是这个属性html5demo.braincracking.org/demo/async.php的实时测试。
  • 这应该是一个书签,供对此问题感兴趣的人经常查看:en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5%29

标签: javascript html performance asynchronous google-analytics


【解决方案1】:

google 指定的异步支持是通过两个部分实现的:

  • 使用页面上的脚本(该脚本由 google 提供)将

  • 该脚本具有 async="true" 属性以向兼容的浏览器发出信号,表明它可以继续呈现页面。

第一部分适用于不支持&lt;script async.. 标签的浏览器,允许它们通过“hack”(虽然相当可靠)加载异步,并且还允许在不等待 ga.js 被检索的情况下呈现页面.

第二部分只影响理解异步html属性的兼容浏览器

  • FF 3.6+
  • FF for Android 所有版本
  • IE 10+(从预览版 2 开始)
  • Chrome 8+
  • Chrome For Android 所有版本
  • Safari 5.0+
  • iOS Safari 5.0+
  • Android 浏览器 3.0+(蜂窝启动)
  • Opera 15.0+
  • Opera Mobile 16.0+
  • Opera Mini (自 8.0 起)

指定异步的“html5 正确”方式是使用&lt;script async src="...",而不是&lt;script async="true"。但是,最初浏览器不支持这种语法,也不支持在引用元素上设置脚本属性。如果你想要这个,列表会改变:

  • FF 4+
  • IE 10+(预览版 2 及更高版本)
  • Chrome 12+
  • 适用于 Android 32+ 的 Chrome
  • Safari 5.1+
  • 没有安卓版本

【讨论】:

  • 我不确定你是否需要 async="true",你可以写 'async'
  • 所以如果我像谷歌那样生成脚本标签 - 什么是正确的:var s = document.createElement('script'); s.async='真';s.async=真; (谷歌这样做)或 s.async='async'; ?
  • @Tobias:您将 HTML 布尔属性和相应的 DOM 元素属性混合在一起:HTML 属性(存在于标记中以及使用 setAttribute 显式设置属性时,不推荐)应该只是呈现或设置为空字符串或自身(defer="defer",在编写 XHTML 兼容文档时尤其重要);当使用 JavaScript 即时设置元素的属性时,应该使用s.async = true
  • @vsync:它甚至不应该是trueasyncasync=""async="async"
  • 请注意,问题中链接的帖子设置为async="true"。这不是现在的正确方法,但它是当时唯一得到广泛支持的方法。例如 IE10p2 支持async="true" 但不支持async="async"
【解决方案2】:

这个问题有两个部分,真的。

  1. 问:哪些浏览器支持标记中脚本标签的“async”属性?

    A:IE10p2+、Chrome 11+、Safari 5+、Firefox 3.6+

  2. 问:哪些浏览器支持在动态创建的脚本元素上定义 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/

【讨论】:

    【解决方案3】:

    支持async参数的浏览器版本的完整列表是可用的here

    【讨论】:

      【解决方案4】:

      来自您引用的页面:

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

      Firefox 3.6 是第一个正式提供支持此新功能的浏览器。如果你好奇,这里有更多关于官方HTML5 async specification的细节。

      【讨论】:

      • “这个新特性”指的是 HTML5 的异步属性。所有浏览器都支持 Google Analytics 异步 sn-p。
      【解决方案5】:

      目前所有最新版本的主要浏览器都支持async。现在大多数浏览器都支持它已有几年了。

      您可以在此处跟踪 MDN 网站中哪些浏览器支持异步(和延迟):
      https://developer.mozilla.org/en-US/docs/HTML/Element/script

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      • @MichaelGaskill 这够了吗?你想让我链接到菲利普的答案吗?
      【解决方案6】:

      刚刚查看了使用谷歌分析的这个页面的 DOM (document.scripts[1].attributes)。 我可以告诉你,谷歌正在使用 async=""。

      [type="text/javascript", async="", src="http://www.google-analytics.com/ga.js"]
      

      【讨论】:

        猜你喜欢
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-30
        • 1970-01-01
        相关资源
        最近更新 更多