1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

非同期レンダリング (async属性)

Last updated at Posted at 2020-03-02

レンダリングの仕組み

ブラウザ(Google ChromeやSafari)はhtmlファイルを上から順番に解析します。
htmlにCSSファイルやJavaScriptファイル、写真等のURLがあった場合、その都度サーバからファイルをダウンロードします。

非同期、非同期処理とは

あるタスクが実行をしている時に、他のタスクが別の処理を実行できる方式。

分かりにくいので下記は例です。

例)写真の表示(非同期読み込み)の場合

  1. 写真のダウンロードを開始する(ダウンロードに1分かかる)。
  2. 写真のダウンロードは時間がかかるため、ダウンロード完了を待たずに次の処理に進む。
  3. 写真のダウンロードが完了したタイミングで写真表示の処理を行う。

イメージ(同期)

webサイトの表示に必要なリソース(CSS、JavaScript、写真)をダウンロード完了後、次の処理にいく。
ブラウザは、JavaScriptファイルのダウンロードが完了しないと次に進めないので、JavaScriptファイルの読み込みがレンダリングをブロックしている。
Untitled Diagram-同期処理.png

async="true"をつけた場合(非同期)

②'のJavaScriptファイルは②のCSSファイルのダウンロードとほぼ同時にダウンロードを開始する。ブラウザはJavaScriptファイルのダウンロード完了を待たずに次の処理にいく。
JavaScriptファイルのダウンロード完了を待たずにブラウザは次の処理に進めるので、JavaScriptファイルの読み込みはレンダリングをブロックしない。
Untitled Diagram-非同期処理 (2).png

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?