use*_*324 12 javascript ajax jquery asynchronous wait
嗨我在我的脚本中有2个ajax调用,我需要它们运行asnyc来腾出时间,但我需要第二个等到第一个完成.
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO1,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d.data);
}
, error: function () {
chyba("chyba v požadavku", "df");
}
});
if (parO2.length > 0) {
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO2,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
/*WAIT UNTIL THE FIRST CALL IS FINISHED AND THAN DO SOMETHING*/
}
, error: function () {
chyba("chyba v požadavku", "df");
}
});
Run Code Online (Sandbox Code Playgroud)
那么任何想法?谢谢
Rus*_*Cam 17
如果使用jQuery 1.5+,您可以使用它jQuery.when()来完成此任务.类似的东西(缩短了ajax要求简洁,只需在你上面做的时候传递对象)
$.when($.ajax("getText.asmx/ws_getText"),
$.ajax("getText.asmx/ws_getText")).done(function(a1, a2){
// a1 and a2 are arguments resolved for the
// first and second ajax requests, respectively
var jqXHR = a1[2]; // arguments are [ "success", statusText, jqXHR ]
});
Run Code Online (Sandbox Code Playgroud)
您不知道它们将以何种顺序返回,因此如果您手动滚动它,则需要检查另一个请求的状态并等待它返回.