2013-04-21 11 views
0

preInit, Init, Load 함수를 허용하는 function (아래의 App 객체와 같은) 집합을 만들고이를 실행하려고합니다. 주문. 예를 들어 :몇 가지 기능을 수행 할 때 몇 가지 js 함수를 실행합니다. 몇 가지 ajax 호출을 사용합니다.

var formOperation = App.preInit(function(){ 
//Some Code ... 
}) 
.init(function(){ 
//Some Code Here... 
}) 
.load(function(){ 
//Other Code Here... 
}); 

문제는 그 사용자가 전혀 이연 객체를 처리하지 않을 것입니다 그리고 나는 그들이 원하는대로 그들에게 많은 ajax calls로를 사용하고 싶습니다. jQuery like ajaxQueue으로 확장 된 기능을 사용하지 않기를 바랍니다.

내가 생각할 수있는 유일한 방법은 $.ajax calls의 목록을 가져온 다음이를 호출하기 전에 Deferred 개체를 설정하는 것입니다.

기능을 호출하기 전에 의 목록을 function에 어떻게 가져올 수 있는지 알고 싶습니까? 또는 다른 제안 사항이 있으십니까?

+0

내가 매개 변수가 어떤 아약스처럼 함수가 코드에 전달하는 경우 (프로그램) 알 수있는 방법이 있다고 생각하지 않습니다. 어떻게 든 함수를 검사 할 수 있다고해도, 차례 차례로 Ajax를 수행하는 다른 함수를 호출 할 수 있습니다. – nnnnnn

+0

글쎄, 이것에 대한 해결책을 찾은 것 같습니다. 하지만 문제는 대답으로 게시 할 수 없다는 것입니다. 내가 오늘 질문을했기 때문에. '$ .ajaxSetup()'에는 지연된 객체가 전달 된 beforeSend라는 것이 있습니다! 배열을 만들고 지연된 객체를 추가 할 수 있습니다. –

답변

0

글쎄, 나는 이것에 대한 해결책을 찾았다 고 생각한다. $.ajaxSetup()에는 지연 객체가 전달 된 beforeSend이라는 항목이 있습니다! 배열을 만들고 지연된 객체를 추가 할 수 있습니다.

var ajaxCalls = [{}]; 
     $.ajaxSetup($.ajaxSettings, { 
      beforeSend: function (deferred) { 

       ajaxCalls.push(deferred); 
      }, 
      complete: function (xhr, textStatus) { 
       if (ajaxCalls.length == 1) { 
        //Do Something... 
       } 
      } 
     });