<script>
JavaScriptのコードを埋め込んでブラウザに動的な処理をさせます。
<script>と</script>の間に直接コードを書く方法と、
src属性を設定してコードを外部ファイル化する方法があります。
有効な属性
属性名 | 説明 |
src | 外部リソースのスクリプトの場合にURLを指定します。 |
async | src属性がある場合に設定できます。設定されていると非同期で処理されます。 |
defer | src属性がある場合に設定できます。設定されているとHTML構文解析後に処理されます。 |
type | スクリプトのMIMEタイプを指定します。指定されない場合は "text/javascript" となります。 |
charset | src属性がある場合に、外部リソースの文字コードを指定できます。 |
以前はtype属性が必須でしたが、
HTML5ではtype属性の初期値が"text/javascript"となるため、
"text/javascript"の場合は指定する必要はありません。
指定しなくても古いブラウザでも問題は生じないと思われます。
外部リソースにASCIIコード以外が含まれる場合、
文字化け防止のためにcharset属性はつけたほうがいいと思います。
async及びdeferをつけると、
外部リソースのロード及び処理と非同期にドキュメントの解析が行われるため、
外部リソースのロードに時間がかかる場合でもページの表示が速やかに行えます。
async及びdeferをつけて非同期になると、
ドキュメントの現在位置にHTMLコードを挿入する document.write() などが使用できないことに注意してください。
asyncは新しい属性なため、使用する場合は非対応ブラウザのためにasyncとdeferを両方設定できます。
その場合は対応ブラウザではasyncとなり、非対応ブラウザではdeferとなります。
async,deferの違いは、
asyncは非同期ロードされてロード完了時に即実行される。
deferは非同期ロードされHTML構文解析完了後(ページ表示完了後)に処理される。