jQuery / Ajax - $.ajax() Passing Parameters to Callback - Good Pattern to Use?

后端 未结 2 611
南旧
南旧 2020-12-04 09:30

JavaScript code I\'m starting with:

function doSomething(url) {  
   $.ajax({
      type: \"GET\",  
      url: url,  
      dataType: \"xml\",  
      suc         


        
相关标签:
2条回答
  • 2020-12-04 10:20

    Like this...

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

    Answer to your comment: Does use of anonymous functions affect performance?

    0 讨论(0)
  • 2020-12-04 10:23

    The pattern you'd like to use could work if you create a closure inside your rssToTarget function:

    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)
           });
    }
    

    When rssToTarget(elem) is executed, the element parameter is stored in the closure, and the callback function is returned, waiting to be executed.

    0 讨论(0)
提交回复
热议问题