SlideShare a Scribd company logo
JavaScript 
defer / async 
PAEK, Seung-Hyun
defer / async 목적 
JavaScript 로드 및 실행시의 
DOM 작성과 Rendering 을 
Block 하지 않는다.
defer / async 지원 브라우저 
defer 3.5+ 7+ 5.0+ 4.0+ NA 5.0+ 3.0+ 
async 3.6+ 8+ 5.0+ 10+ 15.0+ 5.0+ 3.0+
defer / async 선언 
HTML 4.01 <script defer ...> 
XHTML 
1.0 / 1.1 
<script defer="defer" ...> 
HTML5 <script defer ...> 
<script async ...>
defer / async 공통Spec. 
• defer/async 정의 script는 이후의 DOM생성 렌더링을 블럭안함 
• defer/async 정의 script는 인라인스크립트에서 사용불가(HTML 5) 
• defer/async 정의 script 안에서 document.write()는 사용불가(HTML 
4.01, XHTML 1.0, 1.1), 또는 권장안함(HTML 5)
defer / async 차별Spec. 
defer 정의 script는 스크립트파일을 
읽어들인 후 실행은 페이지의 
로딩완료후까지 지연된다 
async 정의 script는 스크립트파일을 
읽어들인 후 실행은 가능한한 빨리 
실행된다
defer / async 차별Spec. 
여러 개의 <script>에 defer/async 가 정의된 경우 
defer 는 페이지의 로딩 후 실행될 
스크립트리스트를 기준으로 순서대로 
실행되므로(동기성) 실행순서가 
보장되어야 하나 모든 브라우저에서 
보장되지는 않음 
async 는 스크립트파일의 로딩이 
완료된 스크립트부터 비동기적으로 
실행되므로, 실행순서를 보장하지 
않음. 그러므로 의존성이 있는 
스크립트에는 사용시 주의
defer / async 
DOM 
Element1 
JavaScript Download 
JS 
Parse 
JS 
Run 
DOM 
Element2 
DOM 
Element1 
JavaScript Download 
JS 
Parse 
JS 
Run 
DOM 
Element2 
DOM 
Element3 
DOM 
Element3 
DOM 
Element1 
JavaScript Download 
JS 
Parse 
JS 
Run 
DOM 
Element2 
DOM 
Element3 
normal 
defer 
async
감사합니다. 
Facebook : https://www.facebook.com/pekuid

More Related Content

PDF
리액트 적용기
PDF
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
PDF
CSS3 Top10
PDF
CSS3 천기누설
PPT
웹표준의 이해
PDF
React vac pattern
PPTX
Html초급 1강 웹표준의 이해
PDF
[D2 campus]착 하면 척! chak 서비스 개발기
리액트 적용기
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
CSS3 Top10
CSS3 천기누설
웹표준의 이해
React vac pattern
Html초급 1강 웹표준의 이해
[D2 campus]착 하면 척! chak 서비스 개발기

What's hot (20)

PPTX
Vingle tech talk #1
PPTX
웹표준(XHTML+CSS)
PDF
Web Framework (웹 프레임워크)
PDF
PHP로 웹개발을 해보자
PPTX
Vue 뽀개기 1장 환경설정 및 spa설정
PDF
크롬 개발자 도구 소개 및 사용법
PDF
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
PDF
도구를 활용한 더 나은 웹 개발: Yeoman
PPTX
프론트엔드 개발자의 자바스크립트
PDF
원모먼트 Vue js 적용기
PDF
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
PDF
Cooking jquery
PPTX
프론트엔드 개발 첫걸음
PPTX
PHP Slim Framework with Angular
PDF
Golang+on+analytics+and+blockchain
PPTX
The LESS 기초 : The Dynamic Styleshee Language Basic
PDF
JavaScript로 오픈소스를 해보자. bsJS
PPTX
How_to_choose_the_right_framework
PDF
문돌이가 가르치는 서버사이드 PHP
PDF
개발자를 위한 웹표준 & 웹접근성이야기
Vingle tech talk #1
웹표준(XHTML+CSS)
Web Framework (웹 프레임워크)
PHP로 웹개발을 해보자
Vue 뽀개기 1장 환경설정 및 spa설정
크롬 개발자 도구 소개 및 사용법
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
도구를 활용한 더 나은 웹 개발: Yeoman
프론트엔드 개발자의 자바스크립트
원모먼트 Vue js 적용기
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Cooking jquery
프론트엔드 개발 첫걸음
PHP Slim Framework with Angular
Golang+on+analytics+and+blockchain
The LESS 기초 : The Dynamic Styleshee Language Basic
JavaScript로 오픈소스를 해보자. bsJS
How_to_choose_the_right_framework
문돌이가 가르치는 서버사이드 PHP
개발자를 위한 웹표준 & 웹접근성이야기
Ad

Viewers also liked (12)

PDF
Es2015 Simple Overview
PPTX
Jenkins를 활용한 javascript 개발
PPTX
Deview 2015 review
PDF
AWS 천재가 된 홍대리 10가지 팁:: Megazone 박세진 ::AWS Summit Seoul 2016
PPTX
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
PDF
React 튜토리얼 1차시
PDF
비개발자를 위한 Javascript 알아가기 #4
PPTX
ECMAScript 6의 새로운 것들!
PDF
최호영, TYPESCRIPT - Javascript의 안정성을 높이기 위한 시도, NDC2013
PPTX
프론트엔드 개발자
PDF
FalsyValues. Dmitry Soshnikov - ECMAScript 6
PDF
혁신적인 웹컴포넌트 라이브러리 - Polymer
Es2015 Simple Overview
Jenkins를 활용한 javascript 개발
Deview 2015 review
AWS 천재가 된 홍대리 10가지 팁:: Megazone 박세진 ::AWS Summit Seoul 2016
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
React 튜토리얼 1차시
비개발자를 위한 Javascript 알아가기 #4
ECMAScript 6의 새로운 것들!
최호영, TYPESCRIPT - Javascript의 안정성을 높이기 위한 시도, NDC2013
프론트엔드 개발자
FalsyValues. Dmitry Soshnikov - ECMAScript 6
혁신적인 웹컴포넌트 라이브러리 - Polymer
Ad

JavaScript defer & async

  • 1. JavaScript defer / async PAEK, Seung-Hyun
  • 2. defer / async 목적 JavaScript 로드 및 실행시의 DOM 작성과 Rendering 을 Block 하지 않는다.
  • 3. defer / async 지원 브라우저 defer 3.5+ 7+ 5.0+ 4.0+ NA 5.0+ 3.0+ async 3.6+ 8+ 5.0+ 10+ 15.0+ 5.0+ 3.0+
  • 4. defer / async 선언 HTML 4.01 <script defer ...> XHTML 1.0 / 1.1 <script defer="defer" ...> HTML5 <script defer ...> <script async ...>
  • 5. defer / async 공통Spec. • defer/async 정의 script는 이후의 DOM생성 렌더링을 블럭안함 • defer/async 정의 script는 인라인스크립트에서 사용불가(HTML 5) • defer/async 정의 script 안에서 document.write()는 사용불가(HTML 4.01, XHTML 1.0, 1.1), 또는 권장안함(HTML 5)
  • 6. defer / async 차별Spec. defer 정의 script는 스크립트파일을 읽어들인 후 실행은 페이지의 로딩완료후까지 지연된다 async 정의 script는 스크립트파일을 읽어들인 후 실행은 가능한한 빨리 실행된다
  • 7. defer / async 차별Spec. 여러 개의 <script>에 defer/async 가 정의된 경우 defer 는 페이지의 로딩 후 실행될 스크립트리스트를 기준으로 순서대로 실행되므로(동기성) 실행순서가 보장되어야 하나 모든 브라우저에서 보장되지는 않음 async 는 스크립트파일의 로딩이 완료된 스크립트부터 비동기적으로 실행되므로, 실행순서를 보장하지 않음. 그러므로 의존성이 있는 스크립트에는 사용시 주의
  • 8. defer / async DOM Element1 JavaScript Download JS Parse JS Run DOM Element2 DOM Element1 JavaScript Download JS Parse JS Run DOM Element2 DOM Element3 DOM Element3 DOM Element1 JavaScript Download JS Parse JS Run DOM Element2 DOM Element3 normal defer async
  • 9. 감사합니다. Facebook : https://www.facebook.com/pekuid