고슴맨쉬
망치와 공(空)
고슴맨쉬
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • Props
  • 오류
  • axios
  • 코딩애플
  • 삼항연산자
  • json
  • UXUI
  • 프로그래머스
  • redux
  • state
  • array
  • object
  • CSS
  • class
  • TypeScript
  • Ajax
  • JavaScript
  • CS
  • useEffect
  • react
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
고슴맨쉬

망치와 공(空)

🟨 JavaScript/개념

[드림코딩] html에 js를 링크하는 여러가지 방법들

2022. 4. 14. 11:39

1. head 내부에 작성

<head>
    <script src ="main.js"></script>
</head>

위에서부터 HTML을 읽는다 (parsing html)

-> blocked 된 상태에서 js를 읽는다. (fetching/executing js)

-> 다시 HTML을 읽는다.

 

이 방법은 js가 용량이 크다면 웹사이트를 불러오는데까지 많은 시간이 소요된다.

 

2. body 내부에 작성

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

parsing html

-> 페이지가 완료된 상태에서 js를 읽는다. (fetching/executing js)

 

사용자가 js가 적용되지 않은 웹사이트 (데이터나 DOM 요소가 꾸며지지 않은 상태) 를 js가 받아지기 전까지 보게 된다.

 

3. head 내부에 작성 (asyn)

<head>
    <script asyn src ="main.js"></script>
</head>
<body>
</body>

parsing하다가 js링크를 만나면 parsing과 병렬로 js를 읽다가 js가 받아지면(fetching) 실행(executing)

-> 마저 parsing html

 

다운로드받는 시간을 절약할 수 있으나 js가 fetching되는 순서대로 executing되기 때문에 의도한 순서와 상관없이 js가 실행되어 순서에 의존적인 js의 경우 예상치 못한 오류를 낼 수 있다.

 

4. head 내부에 작성 (defer) (추천)

<head>
    <script defer src ="main.js"></script>
</head>
<body>
</body>

parsing하다가 js링크를 만나면 parsing과 병렬로 js를 fetching

-> HTML parsing이 끝나면 js를 순서대로 executing

 

다운로드 시간을 절약할 수 있고, js 또한 순서대로 실행되어 가장 많이 사용된다.


출처 : 드림코딩 https://www.youtube.com/@dream-coding / MDN https://developer.mozilla.org/ko

'🟨 JavaScript > 개념' 카테고리의 다른 글

[코딩앙마 외] 객체 리터럴과 객체 접근법, 그리고 생성자 함수  (0) 2022.04.14
[코딩앙마 외] 객체(Object)와 프로퍼티(property)  (0) 2022.04.14
[코딩앙마] 함수선언문과 함수표현식, 그리고 화살표함수 (추가)  (0) 2022.04.14
[드림코딩/코딩앙마] scope와 hoisting, 그리고 TDZ (추가)  (0) 2022.04.14
[드림코딩/코딩앙마] strict모드와 var/let/const  (0) 2022.04.14
    '🟨 JavaScript/개념' 카테고리의 다른 글
    • [코딩앙마 외] 객체(Object)와 프로퍼티(property)
    • [코딩앙마] 함수선언문과 함수표현식, 그리고 화살표함수 (추가)
    • [드림코딩/코딩앙마] scope와 hoisting, 그리고 TDZ (추가)
    • [드림코딩/코딩앙마] strict모드와 var/let/const
    고슴맨쉬
    고슴맨쉬
    부수되 집착하지 않고, 이해하되 머무르지 않기

    티스토리툴바