카테고리 없음

자바스크립트 로딩순서 include 함수 동적로딩

안녕1999 2017. 5. 30. 23:30

html문서에 아래와 같이 자바스크립트 파일을 추가하면,

<script src="xxx.j"></script>

웹브라우져는 모든 파일을 로딩하고, 파싱한다.
따라서, 각 스크립트파일간 함수 의존관계 체크는 모든 스크립트 파일이 로딩된 이후에 처리된다.

그러나, include함수를 작성하여, 필요시마다 include할 경우,
해당 스크립트에서 사용하는 함수가 없을 경우, 에러처리된다.
따라서, include 순서가 중요해진다.

//로드되기전에, 다른 파일에 있는 함수를 참조할 경우, 에러발생(html에 스크립트파일로 추가하는 경우엔, 모두 로딩되고나서 실행되므로 에러 발생없음)

var include_file_cnt=0;

function include(file)

{

var script=document.createElement('script');

script.src=file;

include_file_cnt++;

script.onload=function()

{

console.log("include(",file,")");

include_file_cnt--;

if(include_file_cnt==0)

{

main();

}

}

document.body.appendChild(script);

//console.log("include",file);

return script;

}

include("hxxx.j");

include("wxxx.j");