I want to make some ajax requests asynchronous .
such as two Ajax, The first Ajax doesn't need to completed, the second request can take place,
$.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"
});
in the urlone background,I make the thread sleep 5 seconds,
and in the urltwo background I return the json Immediately.
I write this, but no effect,
I want the console print
2
3
1
but,actually,it print
2
1
3
this show the second request can be trigged only after the first request return
How to solve this problem??
Added in February 6th:Thanks for your enthusiasm answer.
My server side is C#
and in urlone
I wrote
JsonModel xx=new JsonModel(){.......}; //as you known
System.Threading.Thread.Sleep(5000);
return Json(xx);
in urltwo
I wrote
JsonModel xx=new JsonModel(){.......}; //as you known
return Json(xx);
that's it!
I want this because I performed a very time-consuming operation in urlone,
when I back from urlone,The front has lost response,Even if I set up a very large ajax waiting time。So I want to query whether the opration in urlone is completed by request urltwo,the urltwo is designed for query database complete field flag for the operation in urlone.
This is my idea.
But today, I found a new problem。
when I sleep background thread a long time,then back json data to front,front can response and done some js function,but when I perform a very time-consuming operation in urlone background,when it return to front,the front is no response.
there must be some problem I have not realized,
so