Javascript – 효과적인 외부 *.js 파일 포함 과 실행시점

Javascript –  포함방법과 위치 그리고 처리 시점


ㆍjavascript 파일 포함하기

<!DOCTYPE Html>
<html lang=”ko”>
          <head>
                   <meta charset=”utf-8″/>                 
                   <script laguage=”javascript” src=”normal.js”></script>

          </head>
          <body>
                     <div>
                                 HTML  코드
                     </div>                     
          </body>
</html>
1) <!DOCTYPE Html>  // Html 파싱 시작 
2)  <script src=”normal.js”></script>  //  Html 파싱 멈춤(block)
3)  normal.js   // 다운로드 //  Html 파싱 멈춤(block)
4)  normal.js   // 실행        //  Html 파싱 멈춤(block)
5)  //  HTML 파싱  재시작
6) DOM loaded – Page Ready

<!DOCTYPE Html>
<html lang=”ko”>
          <head>
                   <meta charset=”utf-8″/>                 
          </head>
          <body>
                     <div>
                                 HTML  코드
                     </div>
                     <script laguage=”javascript” src=”normal.js”></script>

          </body>
</html>
1) <!DOCTYPE Html>  // Html 파싱 시작 
2)  <head> ~ <body><div>~</div> // Html 파싱
2)  하단 <script  src=”normal.js”></script>  //  Html 파싱멈춤 (block)
3)  normal.js   // 다운로드 //  Html 파싱 멈춤(block)
4)  normal.js  // 실행         //  Html 파싱 멈춤(block)
5)  normal.js 이후의 HTML 파싱 재시작
6) DOM loaded – Page Ready
<!DOCTYPE Html>
<html lang=”ko”>
          <head>
                 <meta charset=”utf-8″/>                  
                 <script laguage=”javascript” defer src=”normal.js”></script>
          </head>
          <body>
                     <div>
                                 HTML  코드
                     </div>
          </body>
</html>
1) <!DOCTYPE Html>  // Html 파싱 시작 
2)  <script language=”javascript” src=”normal.js”></script>  //  Html 파싱계속됨
3)  normal.js   // 다운로드 //  Html 파싱계속됨
4)  normal.js  // 실행대기  //  Html 파싱계속됨
5) //   Html 파싱계속됨 – 모든 HTML 파싱 끝
6)  normal.js   // 실행
7) DOM loaded – Page Ready

 

<!DOCTYPE Html>
<html lang=”ko”>
          <head>
                <meta charset=”utf-8″/>                  
                <script laguage=”javascript” async src=”normal.js”></script>
          </head>
          <body>
                     <div>
                                 HTML  코드
                     </div>
          </body>
</html>
1) <!DOCTYPE Html>  // Html 파싱 시작 
2)  <script language=”javascript” src=”normal.js”></script>  //  Html 파싱계속됨
3)  normal.js  // 비동기 다운로드 //  Html 파싱계속됨
*)  normal.js  //  실행됨(비동기-다운완료시 아무때나)  // Html 파싱 멈춤(block)
5)  모든 Html 파싱 끝남
7) DOM loaded – Page Ready
<!DOCTYPE Html>
<html lang=”ko”>
          <head>
             <meta charset=”utf-8″/>                  
             <script laguage=”javascript”  async src=”normal1.js”></script>
<script laguage=”javascript”  async src=”normal2.js”></script>
             <script laguage=”javascript”  async src=”normal3.js”></script>
          </head>
          <body>
                     <div>
                                 HTML  코드
                     </div>
          </body>
</html>
1) <!DOCTYPE Html>  // Html 파싱 시작 
2)  <script language=”javascript” src=”normal.js”></script>  //  Html 파싱계속됨
3)  normal1.js  // 비동기 다운로드 //  Html 파싱계속됨
4)  normal2.js  // 비동기 다운로드 //  Html 파싱계속됨
5)  normal3.js  // 비동기 다운로드 //  Html 파싱계속됨
6)  normal1 ~ 3.js  비동기(병렬)로 다운받는 동안  // Html 파싱계속됨
7)  normal1 ~ 3.js  중 먼저 다운로드된 js  바로실행, 실행 중  Html 파싱 멈춤(block)
5)  모든 Html 파싱 끝남
7) DOM loaded – Page Ready

 

여담,

7) DOM loaded – Page Ready – DOM 요소들만으로 구성되어있다.
(이미지 ,동영상 음성 등은 없다.)

8) 페이지에 필요한 이미지 및 영상 ,음성파일들을 가져온다.
9) 페이지를 로딩한다.
10) windown.onload() 이벤트 발생

jQuery 에서는,

$(document).ready( function() {     } )   // 권장하지않음
$(function(){   });   // 권장방법

$(document).ready  Event는 1.8 버전에서는 deprecated 되었으며,
3.0에서는 더 이상 지원하지않는다.


바닐라 javascript 에서는이벤트 목록에 등록방법
document.addEventListener(“DOMContedLoaded” , function(){  });

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다