스크립트 async, defer
2020-12-09
구글님들의 CDN 에 <script async defer src='...'></script>
이딴게 있어서 알아보았다.
음 한참 글을 쓰다보니 그냥 참고한 페이지를 요약해놓은 것 밖에 안되서 요점만 적기로 했다.
script
태그에 defer
속성과 async
속성을 붙일 수 있다.
defer
defer
가 붙은 스크립트 태그를 만나면, 스크립트 이후의 문서 파싱을 계속진행하면서 백그라운드로 스크립트를 다운 받고, 다운이 완료되면 실행시킨다.- 스크립트 크기가 달라서 다운로드 시간이 달라진다고 하더라도, 스크립트 실행은 스크립트가 적힌 순서대로 실행이 된다.
defer
는 외부 스크립트에만 해당된다.src
가 없다면 무시된다.
async
async
가 붙은script
태그를 만나면, 페이지와 독립적으로 다운로드/실행이 된다.- 백그라운드로 다운로드가 되는 것은
defer
와 동일 하지만,defer
처럼 스크립트의 순서대로 실행을 기다리지 않는다. - 다운로드가 완료되면 바로 스크립트가 실행된다. (스크립트가 실행중에는 문서 파싱이 멈춘다.)
동적 스크립트
- 자바스크립트를 사용하여 script element 를 만들어 추가하는 경우,
async
와 동일하게 동작한다.
참고