JS中如何等待AJAX的值出来了再执行???

wnttmk 2010-09-02 09:48:54
在window.load里面有一个事件。就是查询某一文章的相关项。。。
但是不知道ID的值。于是要先通过AJAX取得ID。然后再执行其他的方法。。
思路如下:
window.load = function(){while(specialID == null || specialID == ""){
setTimeout( "GetSpecialID()",2000);//这里面的方法取得ID的值

}
if(specialID == -1){
alert('路径不正确!');
return ;
}
dosmthing.....//这里要先确定ID有值。。
}
但是我执行的时候发现总会出现死循环。。求解救。。。
...全文
1161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wnttmk 2010-09-03
  • 打赏
  • 举报
回复
最后使用的方法。。。。
用while的时候会出现死循环。。。。

window.load(){

DoLoop();

}

function DoLoop(){

if(specialID == null || specialID == ""){//参数

GetSpecialID();//要处理的值

setTimeout(DoLoop,500)

}else{

Init();//初始化

}

}

哈哈。。不过还是感谢各位
licip 2010-09-02
  • 打赏
  • 举报
回复
你也可以放到回调函数里去取得你想要的值呀。
Go 旅城通票 2010-09-02
  • 打赏
  • 举报
回复
ajax用同步提交,异步的话需要在状态转换函数中获取到id后再执行对应的代码


GetSpecialID();//里面的ajax同步执行,要不//======间的代码就需要放到状态转换函数中执行
window.load = function(){
GetSpecialID();这里面的方法取得ID的值

//====================
if(specialID == -1){
alert('路径不正确!');
return ;
}
//其他代码
//==============
}
wnttmk 2010-09-02
  • 打赏
  • 举报
回复
后面又想了一个办法。。。
GetSpecialID();
while(specialID == null || specialID == ""){

}
if(specialID == -1){
alert('路径不正确!');
return ;
}

但结果还是一样的。。。郁闷了。
hoojo 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 wnttmk 的回复:]
在window.load里面有一个事件。就是查询某一文章的相关项。。。
但是不知道ID的值。于是要先通过AJAX取得ID。然后再执行其他的方法。。
思路如下:
JScript code
window.load = function(){while(specialID == null || specialID == ""){
setTimeout( "GetSpecialI……
[/Quote]
同步就直接拿返回值,异步可以改成这样

var specialID = "";
function test() {
while(specialID == null || specialID == ""){
setTimeout("test()",2000);//这里面的方法取得ID的值
} if(specialID == -1){
alert('路径不正确!'); return ;
} dosmthing.....//这里要先确定ID有值。。
}
window.load = function(){
GetSpecialID(function (data) {//ajax方法获取值
specialID = data;
})
test();
}


52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧