我已在此地址how to make ajax request async?
中发布了该问题,但我没有收到好的答案。
在回答此问题之前,您可以查看上面的网址,查看其他人提供的答案。
我希望有人可以解决我的问题。
我想让一些ajax请求异步。比如两个Ajax,第一个Ajax不需要完成,第二个请求可以发生
$.ajax({
url: "urlone",
async: true,
complete: function () {
console.log("1");
},
type: "post",
dataType: "json"
});
console.log("2");
$.ajax({
url: "urltwo",
async: true,
complete: function () {
console.log("3");
},
type: "post",
dataType: "json"
});
我想让一些ajax请求异步。比如两个Ajax,第一个Ajax不需要完成,第二个请求可以发生,
我写这个,但没有效果,我想控制台打印2 3 1
但实际上,它打印2 1 3
这显示第二个请求只能在第一个请求返回后触发
如何解决这个问题??
2月6日补充:感谢您的热情回答。我的服务器端是C#,而我写的是urlone
JsonModel xx=new JsonModel(){.......}; //as you known
System.Threading.Thread.Sleep(5000);
return Json(xx);
在urltwo中我写了
JsonModel xx=new JsonModel(){.......}; //as you known
return Json(xx);
那就是它!
我想要这个因为我在urlone中执行了一个非常耗时的操作,当我从urlone回来时,前面已经失去了响应,即使我设置了一个非常大的ajax等待时间。所以我想查询是否操作在urlone中,请求urltwo完成,urltwo设计用于查询数据库完成字段标志,用于urlone中的操作。这是我的想法。
但今天,我发现了一个新问题。当我长时间睡眠后台线程,然后将json数据返回前面,前面可以响应并完成一些js功能,但是当我在urlone背景中执行非常耗时的操作时,当它回到前面时,前面没有反应。一定有一些我没有意识到的问题,所以
答案 0 :(得分:-1)
A
中的AJAX
代表异步。所有请求本质上都是异步的。