> 웹 프론트엔드 > JS 튜토리얼 > javascript로 작성된 js 파일 비동기 로딩 기능(배열 매개변수 전달 지원)_javascript 기술

javascript로 작성된 js 파일 비동기 로딩 기능(배열 매개변수 전달 지원)_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:45:28
원래의
1266명이 탐색했습니다.

직접 사용할 js 파일 로드, 여러 파일 지원, IE와 호환되지 않음

코드 복사 코드는 다음과 같습니다.

/**
* js 파일 로드
* @param {string || array} url js path
* @param {Function} fn 로드 완료 후 콜백
* @return {object} 게임 객체
* @example
* getScript("url.js",fn)
* getScript(["url-1.js","url-2.js"],fn)
*/
game .getScript = (function() {
var 캐시 = {};//URL을 내부적으로 캐시하고 다음번에는 요청하지 않습니다.
return function(url, fn) {
if ( "string" == = typeof(url)) {
url = [url]; //배열이 아닌 경우 집합을 가져옵니다
};
var i = 0,//Loop
ok = 0,// 여러 js가 성공적으로 로드되었습니다
len = url.length,//총 js 수
head = document.getElementsByTagName("head")[0],
js, _url,
create = 함수(url) {//js 생성
js = document.createElement("script");
js.type = "text/javascript";
js.src = url;
head.appendChild (js);
return js;
};
for (; i < len;) {
if (cache[encodeURIComponent((_url = url[ i ]))]) {/ /로드된 경우
(ok >= len && fn) && fn();//모든 js가 로드된 경우 콜백을 실행합니다
continue;
}
캐시[encodeURIComponent(_url) ] = !0;//캐시 설정
js = create(_url);//js 생성
fn && (js.onload = function() {
if ( ok >= len) {/ /모든 js가 로드되면 콜백 실행
fn();
}
});
};
head = js = _url = create = null;
반환 ;
}
})();
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿