Javascript/Vanilla JS

javascript html parsing, js fetching, parsing, fetching

Vagins 2022. 1. 9. 16:26

22.01.09

한동안 교내 공모전과 동계방학인턴을 구하고 가산디지털단지로 출근하느라 블로그 관리를 못 했습니다.

주말마다 매주 정리할 예정입니다.

 

 

1. html parsing이란

 

파싱이란 구문 분석 및 해석이라고 생각하면 됩니다. html 파일을 로드하면 parsing이 시작됩니다.

 

2. JS fetching이란

 

패칭이란 추가된 js 파일을 해석하는 과정입니다. script 태그의 위치에 따라 parsing과 fetching의 순서와 우선순위가 달라집니다.

 

3. parsing과 fetching 순서

 

- head 태그에 script

html parsing을 중간에 중단 -> js 파일 읽어 온 후 다시 html parsing

장점) js 파일 가장 먼저 실행 가능

단점) js 파일의 크기가 큰 경우 속도가 느려진다.

 
- head 태그에 async

EX) <script asyn src = “test.js”></script>

html parsingfetching js가 병렬로 이루어짐.

js 파일 다운(fetching)이 완료되면 html parsing을 중단하고 js파일을 실행시킨 뒤 남은 htmlparsing 한다.

장점) 병렬 진행으로 js 파일 fetching 시간이 절약된다.

단점) js에 필요한 html요소가 정의되기 전에 js가 먼저 실행되는 위험이 있다.

다수의 script가 존재할 때 코드 순서와 상관없이 다운이 완료된 순으로 js파일이 실행되므로 순서에 의존적인 js 코드인 경우 문제가 될 수 있다.

 
- head 태그에 defer

EX) <script defer src="test.js"></script>

HTML parsingfetching js가 병렬 진행되며 HTML parsing완료 후에 js파일을 실행한다.

장점) HTML을 사용자에게 보여준 뒤 js를 실행한다.

특징)

1. html parsingjs fetching이 동시에 이루어지는건 asyncdefer 모두 같다.

2. asyncfetching이 완료되면 parsing 중단하고 js 실행

deferhtml parsing 전부 완료한 후에 js fetching 진행

 
- body 태그 내 script

<body> <script src="test.js"></script> </body>

HTML parsing이 완료된 후 js파일을 읽어온다.

장점 : 기본적인 HTML 콘텐츠는 빠르게 볼 수 있다.

단점 : js에 의존적인 콘텐츠라면 HTML만 먼저 보이는 것은 큰 의미가 없다.

 

 

 

javascipt 정리를 한동안 해야할 것 같습니다. 기초부터 단단해져야합니다.