JS,ajax执行滞后于其他的代码,ajax执行的结果没法用??
答案:2 悬赏:60 手机版
解决时间 2021-03-25 07:41
- 提问者网友:末路
- 2021-03-24 17:04
JS,ajax执行滞后于其他的代码,ajax执行的结果没法用??
最佳答案
- 五星知识达人网友:罪歌
- 2021-03-24 17:43
ajax的执行默认是异步的,所以如果后续有代码执行,不是写在ajax返回方法里面的话。执行结果是没发用的。
如果要用,要么把后续的代码写在ajax的返回方法里面,要么就将异步的改为同步。
如下:
1)默认为异步的
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
///此处可以可以执行后续代码,使用ajax返回结果
}
});
2),同步
var result ;
$.ajax({
type: "GET",
async: false,
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
result =data
}
});
///测试执行后续代码可以用到ajax返回结果
如果要用,要么把后续的代码写在ajax的返回方法里面,要么就将异步的改为同步。
如下:
1)默认为异步的
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
///此处可以可以执行后续代码,使用ajax返回结果
}
});
2),同步
var result ;
$.ajax({
type: "GET",
async: false,
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
result =data
}
});
///测试执行后续代码可以用到ajax返回结果
全部回答
- 1楼网友:西风乍起
- 2021-03-24 19:00
function countChildNodes(nodeId){
var resultData = -1;
$.ajax({
type: 'post',
url: "countChildNodes.tree",
aysnc:false,//同步
data:{nodeId:nodeId},
success: function (data) {
return data;
},
error: function (msg) {
alert(" 数据加载失败!" + msg);
}
});
return resultData;
}追问这个没用的,我试过了,还是返回 -1追答aysnc:true试下?追问还是没用啊,追答晕,你单词打错拉,大神。 async:false
不是aysnc
var resultData = -1;
$.ajax({
type: 'post',
url: "countChildNodes.tree",
aysnc:false,//同步
data:{nodeId:nodeId},
success: function (data) {
return data;
},
error: function (msg) {
alert(" 数据加载失败!" + msg);
}
});
return resultData;
}追问这个没用的,我试过了,还是返回 -1追答aysnc:true试下?追问还是没用啊,追答晕,你单词打错拉,大神。 async:false
不是aysnc
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯