$ .ajax回调函数在另一个函数内

时间:2013-05-08 17:04:58

标签: jquery

我有一个函数,当我的自定义控件被加载时将被调用。请参考下面的代码。

function load()
{
getdata();
}

function getdata()
{

  $. ajax({
 url://remote url,
type:"get",
success:function(data)
{
//going to set the data to my control
}

});
}

因此成功回调函数需要一些时间来返回“数据”(即从远程URL获取数据),但load()客户端方法已完成并执行我们的控制渲染。所以我想load()方法需要等到成功函数从远程URL返回数据然后load()函数完成然后我将基于数据呈现我们的控件。

如何做load()函数需要等待回调完成。

谢谢,

希瓦

2 个答案:

答案 0 :(得分:4)

1)将客户端渲染代码放在成功处理程序中......

2)将它分成另一个方法并从成功处理程序中调用它。

这两种方法都可以解决您的加载功能完成问题,并导致您的UI在数据返回之前呈现。

答案 1 :(得分:1)

你可以在load()中创建一个回调函数,就像这样..

function load()
{   
  getdata(function(data){
      alert('done')
      // do something with data             
  });

}

function getdata(cb)
{

    $. ajax({
    url:"..",
    type:"get",
    success:function(data)
    {
      //send data back to load
      cb(data);
    }

    });
}

load();