我有一个函数,当我的自定义控件被加载时将被调用。请参考下面的代码。
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()函数需要等待回调完成。
谢谢,
希瓦
答案 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();