ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • html문서에서 script태그의 위치와 속성
    Today I Learned 2020. 10. 6. 15:58

    1. html 문서 중 head 안에 script 태그를 그냥 포함하게 되면 일어나는 일

    : 사용자가 html 파일을 다운 받으면 브라우저는 html 파일을 한 줄 한 줄 분석한다. (html을 파싱 한다고 함)

    그렇게 한 줄씩 파싱하다가 js파일이 연결된 script태그를 만나면 파싱을 잠시 멈추고 필요한 js파일을 서버에서 다운 받고, 실행한 다음에 다시 파싱을 이어간다.

    -> 인터넷이 느리거나 js파일의 용량이 크면 사용자가 html파일을 보기까지 시간이 오래 걸린다.

     

    2. body태그 안, 끝 부분에 script 태그를 넣으면 일어나는 일

    : 브라우저가 html을 파싱 해서 화면에 보여질 페이지가 준비된 뒤에 script 태그를 만나기 때문에, js 파일을 다운받기 전에 사용자가 html페이지를 볼 수 있다.

    -> 웹사이트가 js파일에 의존적이라면 사용자가 기본적인 html 파일을 볼 수 있다고 해도, js파일을 다운 받고 실행하기까지 기다려야만 의미 있는 웹사이트를 볼 수 있다.

     

    3. head 안에 script 태그를 넣고 속성 값으로 async 옵션을 주면 일어나는 일

    : 브라우저가 html 파일을 파싱 하다가 script 태그를 만나면 파싱과 동시에 js파일을 다운 받는다. 다운이 완료되면 html 파싱을 잠시 멈추고 js파일을 실행한다. 그 뒤에 나머지 html 파일을 파싱 한다.

    -> body 끝에 script 태그를 넣는 것보다는 js파일을 다운 받는 것이 html 파싱과 함께 일어나기 때문에 다운로드 받는 시간을 아낄 수 있지만, html이 파싱 되기 전에 js가 실행되기 때문에 문제가 생길 수 있다. 또한 html을 파싱 하는 중간에 js파일을 실행하기 위해 파싱을 멈추기 때문에 사용자가 html 파일을 보는데 시간이 오래 걸릴 수 있다.

     

    4. head 안에 script 태그를 넣고 differ 옵션을 주면 일어나는 일

    : 브라우저가 html을 파싱 하다 script를 만나면 파싱과 함께 js파일도 다운 받는다. 그리고 html 파싱이 끝난 뒤에 js파일을 실행한다.

    -> html을 파싱 하는 동안 필요한 js파일을 다운 받아놓고, 먼저 사용자에게 보여줄 html 파일의 파싱을 마친 뒤 js파일을 실행한다.

    -> 가장 효율적인 옵션!

     

    'Today I Learned' 카테고리의 다른 글

    브라우저의 렌더링 과정  (0) 2020.10.21
    리액트에서 여러 input 태그 다루기  (0) 2020.10.14
    객체 지향 프로그래밍?  (0) 2020.10.04
    express.Router  (0) 2020.08.01
    데이터베이스, MySQL  (1) 2020.07.31

    댓글

Designed by Tistory.