자바스크립트 로딩순서 include 함수 동적로딩
카테고리 없음 / 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");