HTML|CSS|JS
코드의 파싱은 직렬적으로 수행된다.
<script>
를 만나면 오류가 발생하게 된다.1. async
와 2.defer
는 JS 파일을 비동기적으로 로드해 이러한 오류를 근본적으로 해결할 수 있다.Q 그렇다면
async
와defer
는 어떤 특성이 있고 각각 어떤 상황에서 써야하는 걸까?
<script>
를 만나면 비동기적으로 HTML 파싱과 동시에 JS 파일을 로드한다.인라인 방식의 <script>
에서는 동작하지 않는다.
- 제어할 DOM이 이미 존재하거나 DOM 제어가 필요하지 않을 때,
<script>
간 종속 관계가 없을 때 사용한다.
script
를 실행한다
<script>
간 종속 관계가 있어서 순서대로 실행 해야 할 때 사용한다.- HTML 파싱이 끝난 후에 실행되기 때문에 DOM 제어에 오류가 발생하지 않는다.
async
와 defer
를 통해 JS 파일을 비동기적으로 로드해 브라우저 렌더링의 속도를 높일 수 있다.async
와 defer
는 각각의 특성이 있으므로 상황에 따라 적절하게 사용해 웹 퍼포먼스를 높이자.