我正在创建一个Web应用程序,我有4个Web服务。
我希望当我从jquery执行第一个web服务时,它应该等待响应,然后检查另一个Webservice并异步获取状态。
目前我正在使用。
function InfoByDate(){
var divToBeWorkedOn = "#AjaxPlaceHolder";
var webMethod = "http://MyWebService/Web.asmx/GetInfoByDates";
var parameters = "{}";
$.ajax({
type: "POST",
url: webMethod,
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$(divToBeWorkedOn).html(msg.d);
},
error: function(e){
$(divToBeWorkedOn).html("Unavailable");
}
});
}
你能提出一些建议。
答案 0 :(得分:1)
“我怎样才能继续检查”这个词是轮询。如果您想轮询网络服务,可以使用setInterval,如下所示。
setInterval(function() {
//call your webservice here
}, 5000);
答案 1 :(得分:0)
在jQuery中使用以下内容
async: false,
作为
$.ajax({
type: "POST",
url: webMethod,
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(msg) {
$(divToBeWorkedOn).html(msg.d);
},
error: function(e){
$(divToBeWorkedOn).html("Unavailable");
//call you second function here
}
});
更多细节
What does "async: false" do in jQuery.ajax()?
$.ajax( { async : false } ) request is still firing asynchronously?
答案 2 :(得分:0)
调用Web服务并在其成功处理程序内调用其他Web服务完全是一个同步调用。无论第一次服务成功与否,调用第二个Web服务都是异步调用。
$.ajax({
type: "POST",
url: webMethod,
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(msg) {
$(divToBeWorkedOn).html(msg.d);
//**call to second service**
},
error: function(e){
$(divToBeWorkedOn).html("Unavailable");
//call you second function here
}
});
用于同步调用集Async:false
和用于所有服务调用的jquery ajax内的异步调用集Async:true