JavaScript読み込みの際に指定できるasyncについて

こんにちは!kossyです!



さて、今回はJavaScript読み込みの際に指定できるasyncについて、
ブログに残してみたいと思います。


asyncという単語の意味


まずは単語の意味から解説します。

async, await 構文 で馴染みのある方もいらっしゃるかもしれませんが、
asyncはAsynchronousの略語で、「非同期の」という意味になります。

ちなみに対義語は、Synchronousです。

同期・非同期については以下のYouTubeの動画が基礎的なところは参考になりました。
https://www.youtube.com/watch?v=QugDLcOo_EE

別のトピックですが、
よく非同期処理と並列処理(マルチスレッド)を混同する方がいらっしゃいますが、
実際には全く別の処理の仕方になっています。
javascriptができるのは非同期処理であって並列処理ではない - Qiita


前置き長くなりましたが、JavaScript読み込みの際にasyncを指定すると、
「.jsファイルを非同期で読み込み、即座に実行」するようになります。

通常、ブラウザはHTMLを解析する際、コードの上部から解析していきます。
ここで、headタグにscriptタグが存在する時、そのscriptタグを見つけた時点でHTMLの解析を一時的に停止し、
jsファイルのダウンロードと実行が同期的に行われます。

asyncを記述すると、javascriptファイルのダウンロードが同期処理ではなく非同期処理で行われるようになり、
HTMLの解析は停止されなくなります。




勉強になりました。