0

完了するまでにさまざまな時間がかかる可能性のある2つのajax呼び出しがあります。私はそれらを「並列」と呼んでいます。コードで 2 つの ajax リクエストを起動します。

blockUI を使用して、両方の呼び出しの開始時と完了時に表示するにはどうすればよいですか。ブロックしようとしている同じものに2つのマスクを付けたくありません(これは現在行っているハックです)。ロックの問題が発生する可能性があるため、グローバル状態などを使用したくないですか?

ありがとう、

4

1 に答える 1

0

ブロックの状態を保存する変数を使用する

  var isBlocked = false;
  //First ajax call.
  $.ajax({type: "POST",
          url: "/some/url1",
          data: {"param1":value1},
          beforeSend: function() {
            if(!isBlocked) {
              $('#my_div').block({message: null});
              isBlocked = true;
            }
          },
          success: function(data) {
            // code
          },
          error: function(request, textStatus, errorThrown) {
            // code
          },
          complete: function(request, textStatus){
            if(isBlocked){
              $('#my_div').unblock();
              isBlocked = false;
            }
          }
  });

  //Second ajax call.
  $.ajax({type: "POST",
          url: "/some/url2",
          data: {"param1":value1},
          beforeSend: function() {
            if(!isBlocked) {
              $('#my_div').block({message: null});
              isBlocked = true;
            }
          },
          success: function(data) {
            // code
          },
          error: function(request, textStatus, errorThrown) {
            // code
          },
          complete: function(request, textStatus){
            if(isBlocked){
              $('#my_div').unblock();
              isBlocked = false;
            }
          }
  });
于 2012-04-25T13:30:08.917 に答える