jquery blockui在同一个对象上有多个ajax调用?

时间:2012-04-25 13:13:03

标签: jquery jquery-blockui

我有2个ajax调用,可能需要不同的时间才能完成。我把它们称为“并行”,即。在代码中发出两个ajax请求。

如何在BOTH调用的启动和完成时使用blockUI。我不想在我试图阻止的同一件事上有两个面具(这是我现在正在做的黑客攻击)。不想使用全局状态等,因为可能会遇到锁定问题?

感谢,

1 个答案:

答案 0 :(得分: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;
            }
          }
  });