2012-02-03 3 views
0

성능상의 이유로 페이지로드 이벤트에서로드하는 대신 click 이벤트에서 Javascript 파일을로드하려고합니다. javascript가 이미로드 된 경우 해당 정보를 알 수 있습니까?Javascript loaded jquery getscript를 통해 확인

오른쪽 지금은 '로드'이벤트

var javascriptLoaded=false 

if (!javascriptLoaded) 
     $.getScript('/scripts/test.js', function() { 
      javascriptLoaded = true; 
      setTimeout(function() { 
      callSomeFunctionhere(); 
      }, 1000);      
     }); 

이 일을 더 나은 방법이 있나요을 확인하기 위해 전역 변수를 유지하고있다?

+1

가능한 중복 [파일이로드 된 자바 스크립트 있는지 확인] (http://stackoverflow.com/questions/4036203/check-if-javascript-file-was-loaded) –

+0

@Diodeus 그 질문은 jquery가 $ 또는 Jquery 객체 인 – kobe

답변

1

예. 당신이하고 싶은 것은 success 콜백을 사용하는 것입니다. 스크립트를로드하기위한 Ajax 요청이 성공적으로 끝난 후에 만 ​​호출되는 콜백 메소드. 로드 된 스크립트가 스크립트를 호출 할 수 있는지 확인하는 경우

$.ajax({ 
url: "/myscript.js", 
dataType: "script", 
success: function(){ 
    scriptLoaded = true; 
    //do some more stuff now that the script is loaded 
} 
failure: function(){ 
    scriptLoaded = false; 
} 

}); 
+0

을 가지고 있기 때문에 jquery에 대해서만 대답하지만, 나는 이미 이것을하고있다. 내 코드를 보면 – kobe

+0

아, 알 겠어. require.js http://requirejs.org/를 사용해 보거나 yepnope.js를 사용할 수있는 조건부로드를 추가하려는 경우 http://yepnopejs.com/ – gaffleck

+0

감사합니다 gaffleck, 나는 이것들을 보겠습니다 – kobe

1

간단한 방법 확인 : 예를 들어이 동등의

if($.fn.foo == undefined) { 
    $.getScript("/path/to/script/foo.js", function() { 
     // success 
    }); 
} 
+0

이것은 작동합니다 네임 스페이스가 맞다면 – kobe

관련 문제