programing

jQuery / Ajax-$ .ajax () 콜백에 매개 변수 전달-사용하기에 좋은 패턴?

nasanasas 2020. 10. 24. 10:22
반응형

jQuery / Ajax-$ .ajax () 콜백에 매개 변수 전달-사용하기에 좋은 패턴?


시작하는 JavaScript 코드 :

function doSomething(url) {  
   $.ajax({
      type: "GET",  
      url: url,  
      dataType: "xml",  
      success: rssToTarget  
   });  
}    

사용하고 싶은 패턴 :

//where elem is the target that should receive new items via DOM (appendChild)
function doSomething(url, elem) {
   $.ajax({
      type: "GET",
      url: url,
      dataType: "xml",
      success: rssToTarget(elem)
   });
}  

이런 식으로 작동하도록 콜백을 얻을 수 없다고 생각합니다. 적절한 패턴은 무엇입니까? 일시적으로 elem또는 요소 이름을 유지하기 위해 전역 변수를 반드시 사용하고 싶지 않습니다 .


이렇게 ...

function doSomething(url, elem) {
  $.ajax({
     type: "GET",
     url: url,
     dataType: "xml",
     success: function(xml) {
       rssToTarget(xml, elem);
     }
  });
}

귀하의 의견에 대한 답변 : 익명 함수를 사용하면 성능에 영향을 줍니까?


rssToTarget 함수 내에 클로저 를 생성하면 사용하려는 패턴이 작동 할 수 있습니다 .

function rssToTarget(element) {
  return function (xmlData) {
    // work with element and the data returned from the server
  }
}

function doSomething(url, elem) {
    $.ajax({ type: "GET",
         url: url,
         dataType: "xml",
         success: rssToTarget(elem)
       });
}

경우 rssToTarget(elem)실행되고, 소자 매개 변수에 저장된 고정 하고 콜백 함수가 실행되기를 기다리고, 복귀된다.

참고 URL : https://stackoverflow.com/questions/1194104/jquery-ajax-ajax-passing-parameters-to-callback-good-pattern-to-use

반응형