기본적으로 HTML 파서는 문서 파싱 도중에 자바스크립트를 만나면,
파싱 작업을 멈추고 자바스크립트를 다운로드하고 실행되기를 기다린다.
이는 덩치 큰 외부 스크립트를 문서로 삽입할 때 문서 로딩 시간의 지연을 초래하는데,
이를 해결하기 위한 메커니즘 중 하나가 defer와 async 속성이다.
<script> 태그에 사용할 수 있는 속성으로 단어 그대로 defer은 지연, async는 비동기 특징을 지닌다.
보다 자세한 내용은 아래 블로그 글에서 확인할 수 있다.
defer/async와 HTML 파서의 상호작용은 다음 포스트에서 시각적으로 확인 가능하다
=> http://peter.sh/experiments/asynchronous-and-deferred-javascript-execution-explained/
그리고 이 두 속성의 브라우저 지원 여부는 다음 포스트에서 바로 확인 가능한데...
=> http://peter.sh/experiments/asynchronous-and-deferred-javascript-execution/
문제는 이들 속성을 지원하는 브라우저 상황이 일관되지 않아 실제 적용을 위해서는 고민이 필요하다.
DOM과 밀접히 상호작용하고 스크립트간 유효범위에 대한 액세스 규칙을 포함하는 등 복잡한 스크립트 환경에서는 로딩과 실행 순서에 민감할 수 있으니 자~알 보고 적용해야 할 것이다.
'모바일 > Javascript' 카테고리의 다른 글
함수에 대하여 (9) | 2013.07.31 |
---|---|
null과 undefined 그리고 NaN (2) | 2013.07.29 |
Pie.js (2) | 2013.07.16 |
Zepto.js (2) | 2013.07.15 |
자바스크립트 상속 (4) | 2013.07.12 |