Hangi tarayıcılar <script async = “async” /> özelliğini destekliyor?


196

Google, 1 Aralık 2009 tarihinde eşzamansız Google Analytics izleme desteği verdiğini açıkladı .

Eşzamansız izleme, <script>etiket için eşzamansız yönerge kullanılarak gerçekleştirilir .

Hangi tarayıcılar async yönergesini ( <script async="async" />) ve hangi sürümden beri destekler?


1
Bağlantı verdiğiniz sayfada: "Firefox 3.6, bu yeni özellik için resmi olarak destek sunan ilk tarayıcıdır." FWIW, hızla daha iyi ve daha iyi destek sağlayan bir HTML5 özelliğidir.
Crescent Fresh

51
HTML5 özelliği, async = "true" öğesinin geçersiz olduğunu söylüyor. Bir boole HTML özelliği olarak, özelliğin varlığı "true" değerini belirtirken, özelliğin olmaması "false" değerine eşittir. Öznitelik varsa, öznitelik için geçerli olan tek değer "" ve "async" olur.
Joel Mueller

İşte html5demo.braincracking.org/demo/async.php özelliğinin canlı bir testi .

3
Bu, bu konuyla ilgilenen herkes için sık sık kontrol edilecek bir yer imi olmalıdır: en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5%29
pumpkinthehead 16:12

Yanıtlar:


162

Google tarafından belirtilen zaman uyumsuz destek iki bölüm kullanılarak sağlanır:

  • DOM'a bir <script> etiketi yazmak için sayfanızda komut dosyası (komut dosyası google tarafından sağlanır) kullanma.

  • bu komut dosyasının, uyumlu tarayıcılara sayfayı oluşturmaya devam edebileceğini bildiren async = "true" özelliği vardır.

İlk bölüm, <script async..etiketleri desteklemeyen tarayıcılarda çalışır ve "hack" ile async yüklemelerine izin verir (oldukça sağlam olmasına rağmen) ve ayrıca ga.js'nin alınmasını beklemeden sayfanın oluşturulmasına izin verir.

İkinci bölüm yalnızca async html özelliğini anlayan uyumlu tarayıcıları etkiler

  • FF 3.6 ve üzeri
  • Android için FF Tüm Sürümler
  • IE 10+ (önizleme 2 ile başlayarak)
  • Chrome 8+
  • Android için Chrome Tüm sürümler
  • Safari 5.0 ve üzeri
  • iOS Safari 5.0+
  • Android Tarayıcı 3.0+ (petek açık)
  • Opera 15.0+
  • Opera Mobile 16.0+
  • Opera Mini Yok (8.0 itibariyle)

Zaman uyumsuzluğunu belirtmek için "html5 uygun" yolu a <script async src="..."ile değil <script async="true". Bununla birlikte, başlangıçta tarayıcılar bu sözdizimini desteklemedi veya başvurulan öğelerde script özelliğinin ayarlanmasını desteklemedi. Bunu istiyorsanız, liste değişir:

  • FF 4+
  • IE 10+ (önizleme 2 ve üstü)
  • Chrome 12+
  • Android için Chrome 32+
  • Safari 5.1 ve üzeri
  • Android sürümü yok

34
Async = "true" 'a bile ihtiyacınız olduğundan emin değilim,' async 'yazabilirsiniz
vsync

4
yani google gibi komut dosyası etiketini oluşturursanız - ne doğru olur: var s = document.createElement ('script'); s.async = 'doğru', s.async = gerçek; (google bu şekilde yapar) veya s.async = 'async'; ?
Toby

8
@Tobias: HTML boolean özniteliklerini ve karşılık gelen DOM öğesi özelliklerini karıştırıyorsunuz: HTML özniteliği (biçimlendirmede mevcut ve açıkça kullanarak öznitelikleri ayarlarken setAttribute, önerilmez), mevcut olmalı veya boş bir dizeye veya kendisine ayarlanmış olmalıdır ( defer="defer"özellikle XHTML uyumlu belgeler yazarken önemlidir); JavaScript kullanarak öğenin özelliğini anında ayarlarken, biri kullanılmalıdır s.async = true.
Marcel Korpel

39
@vsync: Olmamalı bile true; ya async, async=""ya da async="async".
Marcel Korpel

4
Soru setlerinde bağlantılı gönderinin bulunduğunu lütfen unutmayın async="true". Bunu yapmak için doğru yol değil artık , ama bunu yapmanın tek yaygın olarak desteklenen yoluydu sonra . Örneğin, IE10p2 destekleniyor, async="true"ancak desteklenmiyorasync="async"
Philip Rieck

60

Bu sorunun iki kısmı var, gerçekten.

  1. S: Hangi tarayıcılar, biçimlendirmedeki komut dosyası etiketindeki "zaman uyumsuz" özelliğini destekler?

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

  2. S: Hangi tarayıcılar , dinamik olarak oluşturulan bir komut dosyası öğesinde JavaScript'teki "zaman uyumsuz" özelliğinin davranışını tanımlayan yeni özelliği destekler ?

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

Opera'ya gelince, her iki async türünü de destekleyen bir sürüm yayınlamaya çok yakınlar. Onlarla bu konuda yakından çalışıyorum ve yakında çıkacak (umarım!).

Ordered-async (aka, "async = false") hakkında daha fazla bilgiyi burada bulabilirsiniz: http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order

Ayrıca, bir tarayıcının yeni dinamik zaman uyumsuz özellik davranışını destekleyip desteklemediğini test etmek için: http://test.getify.com/test-async/




1

asyncŞu anda önemli tarayıcıların son sürümleri tarafından desteklenir. Çoğu tarayıcıda birkaç yıldır desteklenmektedir.

MDN web sitesinde hangi tarayıcıların zaman uyumsuzluğu desteklediğini (ve ertelediğini) buradan takip edebilirsiniz:
https://developer.mozilla.org/en-US/docs/HTML/Element/script


Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
Michael Gaskill

@MichaelGaskill Bu yeterli mi? Philip'in cevabına bağlanmamı ister misin?
brunoais

0

Bu sayfanın google analytics kullanan DOM'sine (document.scripts [1] .attributes) bir göz attım. Google'ın async = "" kullandığını söyleyebilirim.

[type="text/javascript", async="", src="http://www.google-analytics.com/ga.js"]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.