0
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.

defer属性で外部JavaScriptファイルはheadタグ内に

Last updated at Posted at 2020-05-22

覚えたてため、記録に残しておく。

#これまではHTMLのbodyタグの1番最後に置いていた

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./style.css">
  <title>title</title>
</head>

<body><script src="./main.js"></script>
</body>
</html>

何故かというとHTMLのheadタグ内に外部JavaScriptファイルを読み込ませようとすると、HTMLのbodyタグ内を読み込む前にJavaScriptの内容を実行しようとするためエラーが発生する。そのため、HTMLのbodyタグ終了直前に外部ファイルを置いていた。そうすると、HTMLを読み込み終わってからJavaScriptが実行されるためエラーが発生しない。

#defer属性を追加すると
しかしながら、scriptタグにdefer属性というものを使用すると、外部JavaScriptファイルが非同期でダウンロードされ、HTMLファイルを読み込み終わってから外部JavaScriptファイルが実行されるためエラーが発生しない。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./style.css"><script defer src="./main.js"></script>
  <title>title</title>
</head>

<body>
</body>
</html>

#参考
https://www.wakuwakubank.com/posts/614-javascript-async-defer/

0
0
0

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
0
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?