Q. HTML에서 JavaScript를 포함할 때 어떻게 포함하는 게 효율적일까?

 

 

1. <head> 안에 넣기

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
        <script src="main.js"></script>
    </head>
 	 <body>
 	 </body>
  </html>

단점 : 인터넷이 느리고, js 파일이 크면 사용자가 웹사이트를 보는데까지 시간이 오래 걸린다.

 

 

 

2. <body> 안에 넣기

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
    </head>
 	 <body>
     	<script src="main.js"></script>
 	 </body>
  </html>

장점 : 사용자가 기본적인 HTML을 빠르게 볼 수 있다.

단점 : JavaScript에 의존적인 웹사이트라면 = 사용자가 의미있는 컨텐츠를 보기 위해서 js가 필요하다면 사용자가 정상적인 페이지를 보기까지 기다려야하는 시간이 필요하다.

 

 

 

3. <head> 안에 <asyn>를 추가해서 넣기

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
        <script asyn src="main.js"></script>
    </head>
 	 <body>
 	 </body>
  </html>

장점 : <body>안에 넣는 것보단 빠르게 사용자가 볼 수 있다.

단점 : 여전히 시간이 소요된다.

 

 

 

 

4. <head> 안에 <defer> 를 추가해서 넣기

* 가장 효율적, 안정적인 방법

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
        <script defer src="main.js"></script>
    </head>
 	 <body>
 	 </body>
  </html>

장점 : parsing HTML 동안 필요한 js를 다운 받아서 먼저 사용자에게 HTML을 보여준 다음에 바로 이어서 js를 실행하게 된다.

 

 

 

 

 

 


 

Q. 여러 JavaScript 파일을 받을 땐 어떤 걸 사용하는 게 좋을까?

 

 

1. <asyn>의 경우

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
        <script asyn src="a.js"></script>
        <script asyn src="b.js"></script>
        <script asyn src="c.js"></script>
        <script asyn src="d.js"></script>
    </head>
 	 <body>
 	 </body>
  </html>

단점 : 정의된 Script 의 순서에 상관없이 다운로드가 완료된 js부터 실행하기 때문에 "순서에 의존적인 JavaScript"라면 문제가 될 수 있다.

 

 

 

2. <defer>의 경우

<!DOCTYPE html>
<html lang="en">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width", initial-scake=1.0">
        <title>Document</title>
        <script defer src="a.js"></script>
        <script defer src="b.js"></script>
        <script defer src="c.js"></script>
        <script defer src="d.js"></script>
    </head>
 	 <body>
 	 </body>
  </html>

장점 : <asyn>와는 다르게 정의한 Script 순서대로 실행한다.

 

 

 

 

 

 


 

바닐라 JavaScript 파일 맨 위에 꼭 써야하는 것.

'use strict';

'use strict';
//이하 상관없음
console.log('');

써야하는 이유 : JavaScript는 굉장히 유연한 언어이기 때문에 오히려 개발자가 많은 실수를 할 수 있기 때문이다. 또한 엔진을 좀 더 효율적이고 빠르게 사용할 수 있다.

 

 

 

공부한 영상

https://youtu.be/tJieVCgGzhs

 

'JavaScript' 카테고리의 다른 글

[22.02.12] JavaScript - let(1주차)  (0) 2022.02.12

+ Recent posts