HTML <script> atribut async

Definisi dan penggunaan

async Atribut adalah atribut boolean.

Jika disetel async Atribut, skrip akan diunduh paralel saat mengurai halaman dan dijalankan segera saat tersedia. Saat skrip sepenuhnya diunduh, penguraian halaman akan terhenti, kemudian menjalankan skrip, kemudian melanjutkan penguraian sisanya halaman.

注意:async Atribut hanya berlaku untuk skrip eksternal (dan hanya boleh digunakan saat atribut src ada).

注意:Skrip eksternal dapat dijalankan dengan berbagai cara:

  • Jika async telah disetel: skrip akan diunduh paralel saat mengurai halaman dan dijalankan segera saat tersedia (sebelum penguraian selesai)
  • Jika defer telah disetel (tetapi async belum): skrip akan diunduh paralel saat mengurai halaman dan dijalankan setelah penguraian halaman selesai
  • Jika keduanya (async dan defer) belum disetel: skrip akan diunduh dan dijalankan segera, menghalangi penguraian halaman sampai skrip selesai dijalankan

Contoh

Skrip yang diutamakan akan diunduh paralel saat mengurai halaman dan dijalankan segera saat tersedia:

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

Coba sendiri

Sintaks

<script async>

Eksekusi skrip secara asinkron

Tindakan baku yang diambil browser saat menemui elemen script adalah menghentikan pengolahan halaman saat mengunduh dan melaksanakan skrip. Setiap elemen script dijalankan secara bersamaan (sesuai urutan yang didefinisikan) dan eksekusi bersamaan (tidak memperhatikan hal lain selama pengunduhan dan eksekusi skrip).

Sebagai cara baku untuk menangani skrip, eksekusi berurutan mempunyai makna. Namun, beberapa skrip tidak memerlukan pengaturan seperti ini, untuk skrip seperti ini dapat digunakan async 属性提高其性能。这方面的一个典型例子是跟踪脚本(tracking script)。这种脚本可以汇报用户的网站访问记录以便广告公司根据用户的习惯定制和投放广告,或者搜集网站访问者的统计数据以供分析,诸如此类。这些脚本自成一体,一般不需要与 HTML 文档中的元素互相作用。为等待它们加载然后向自己的服务器发回报告而推迟显示页面没有任何意义。

使用了 async 属性后,浏览器将在继续解析 HTML 中其他元素(包括其他 script 元素)的同时异步加载和执行脚本。如果运用得当,这可以大大提高整体加载性能。

注意:使用 async 属性的一个重要后果是页面中的脚本可能不再按定义它们的次序执行。因此,如果脚本使用了其他脚本中定义的函数或值,那就不宜使用 async 属性。

浏览器支持

表中的数字注明了首个完全支持该属性的浏览器版本。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
8.0 10.0 3.6 5.1 15.0