WebKit Nightly-Builds unterstützen dies jetzt. Die Syntax sieht wie folgt aus
<script async src="myAsyncScript.js" onload="myInit()"></script>
<script defer src="myDeferScript.js" onload="myInit()"></script>
Sowohl
asyncals auchdeferSkripte beginnen sofort mit dem Download, ohne den Parser zu unterbrechen, und beide unterstützen einen optionalen onload-Handler, um den häufigen Bedarf an Initialisierungen zu decken, die vom Skript abhängen. Der Unterschied zwischen async und defer liegt darin, wann das Skript ausgeführt wird. Jedes async Skript wird bei der ersten Gelegenheit ausgeführt, nachdem der Download abgeschlossen ist, und vor demload-Ereignis des Fensters. Das bedeutet, es ist möglich (und wahrscheinlich), dassasyncSkripte nicht in der Reihenfolge ausgeführt werden, in der sie auf der Seite erscheinen. DiedeferSkripte hingegen werden garantiert in der Reihenfolge ausgeführt, in der sie auf der Seite erscheinen. Die Ausführung beginnt, nachdem das Parsen vollständig abgeschlossen ist, aber vor demDOMContentLoaded-Ereignis des Dokuments.
Früher wurde dies mit der cleveren Technik gemacht, ein neues Skriptelement in JavaScript zu erstellen und es nach dem Laden der Seite in den Head einzufügen. Das ist einfacher und sauberer. Hoffen wir, dass andere Browserhersteller dies ebenfalls aufgreifen, und zwar mit der gleichen Syntax.