我想让一些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"
});
在 urlone 后台,我让线程休眠 5 秒,
在 urltwo 后台我立即返回 json。
我写了这个,但是没有效果
我想要控制台打印
2
3
1
但实际上,它打印
2
1
3
这表明只有第一个请求返回后才能触发第二个请求
如何解决这个问题呢??
2月6日补充:感谢您的热心解答。
我的服务器端是C#
并在乌尔隆
我写
JsonModel xx=new JsonModel(){.......}; //as you known
System.Threading.Thread.Sleep(5000);
return Json(xx);
在网址二中
我写
JsonModel xx=new JsonModel(){.......}; //as you known
return Json(xx);
就是这样!
我想要这个是因为我在urlone中执行了一个非常耗时的操作,
当我从urlone返回时,前端已经失去响应,即使我设置了很大的ajax等待时间。所以我想通过请求urltwo来查询urlone中的操作是否完成,urltwo是为查询数据库完整字段标志而设计的用于urlone中的操作。
这是我的想法。
但今天,我发现了一个新问题。
当我休眠后台线程很长时间,然后返回json数据到前端时,前端可以响应并完成一些js功能,但是当我在urlone后台执行一个非常耗时的操作时,当它返回到前端时,前端没有响应。
一定有什么问题我没有意识到,
所以