0

私は Web アプリケーションを作成しており、4 つの Web サービスがあります。

  1. 電話をかける
  2. 呼び出しステータスを取得する
  3. 回答済みステータス
  4. 電話を切る

jquery から最初の Web サービスを実行するときに、応答を待ってから別の Web サービスをチェックし、ステータスを非同期的に取得する必要があります。

現在、私は使用しています。

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");              
        }
    });
}

何か提案できますか。

4

3 に答える 3

1

「どうすればチェックを続けることができるか」という用語はポーリングです。Webサービスをポーリングする場合は、以下のようにsetIntervalを使用できます。

setInterval(function() {
  //call your webservice here
}, 5000);
于 2013-03-19T05:40:45.840 に答える
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
    }
});

詳細
jQuery.ajax() で "async: false" は何をしますか?
$.ajax( { async : false } ) リクエストはまだ非同期で起動していますか?

于 2013-03-19T04:46:39.067 に答える
0

Web サービスを呼び出し、その成功ハンドラー内で他の Web サービスを呼び出すことは完全に同期呼び出しです。最初のサービスの成功に関係なく、2 番目の 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
    }
});

すべてのサービス呼び出しの jquery ajax 内の同期呼び出しセットAsync:falseおよび非同期呼び出しセットの場合Async:true

于 2013-03-19T07:36:54.733 に答える