Javascript jqueryajax不显示和隐藏loader div

Javascript jqueryajax不显示和隐藏loader div,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我使用jquery ajax函数调用php代码,但我希望在发送请求时显示loader div,在完成请求后隐藏div。出于测试目的,我使用sleep(5)方法保持php执行5秒,显示我是否可以看到这个加载程序。它不适合我,我尝试了以下代码 第一次尝试 show_loader(); $.ajax( { async: false, url: "bindanswerposts.php", data: "sessuserid="+sessuserid+"

我使用jquery ajax函数调用php代码,但我希望在发送请求时显示loader div,在完成请求后隐藏div。出于测试目的,我使用sleep(5)方法保持php执行5秒,显示我是否可以看到这个加载程序。它不适合我,我尝试了以下代码

第一次尝试

show_loader();
   $.ajax(
    {
      async: false,
      url: "bindanswerposts.php",
      data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
      type: "POST",

      success: function(resp)
      {
        hideloader();
      },
      error: function(e)
      {        
        hideloader();
      }
    });
$(document).ajaxStart(function(){
    showloader();
});

$(document).ajaxComplete(function(){
    hideloader();
});  

       $.ajax(
        {
          async: false,
          url: "bindanswerposts.php",
          data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
          type: "POST",

          success: function(resp)
          {

          },
          error: function(e)
          {        

          }
        });
           $.ajax(
            {
              async: false,
              url: "bindanswerposts.php",
              data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
              type: "POST",
               beforeSend: function() {
       showloader();
      },
      complete: function() {
       hidloader();
  },
              success: function(resp)
              {

              },
              error: function(e)
              {        

              }
            });
第二次尝试

show_loader();
   $.ajax(
    {
      async: false,
      url: "bindanswerposts.php",
      data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
      type: "POST",

      success: function(resp)
      {
        hideloader();
      },
      error: function(e)
      {        
        hideloader();
      }
    });
$(document).ajaxStart(function(){
    showloader();
});

$(document).ajaxComplete(function(){
    hideloader();
});  

       $.ajax(
        {
          async: false,
          url: "bindanswerposts.php",
          data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
          type: "POST",

          success: function(resp)
          {

          },
          error: function(e)
          {        

          }
        });
           $.ajax(
            {
              async: false,
              url: "bindanswerposts.php",
              data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
              type: "POST",
               beforeSend: function() {
       showloader();
      },
      complete: function() {
       hidloader();
  },
              success: function(resp)
              {

              },
              error: function(e)
              {        

              }
            });
第三次尝试

show_loader();
   $.ajax(
    {
      async: false,
      url: "bindanswerposts.php",
      data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
      type: "POST",

      success: function(resp)
      {
        hideloader();
      },
      error: function(e)
      {        
        hideloader();
      }
    });
$(document).ajaxStart(function(){
    showloader();
});

$(document).ajaxComplete(function(){
    hideloader();
});  

       $.ajax(
        {
          async: false,
          url: "bindanswerposts.php",
          data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
          type: "POST",

          success: function(resp)
          {

          },
          error: function(e)
          {        

          }
        });
           $.ajax(
            {
              async: false,
              url: "bindanswerposts.php",
              data: "sessuserid="+sessuserid+"&postid=" + _ViewPostid + "&xcode=" + $("body").data("xcode"),
              type: "POST",
               beforeSend: function() {
       showloader();
      },
      complete: function() {
       hidloader();
  },
              success: function(resp)
              {

              },
              error: function(e)
              {        

              }
            });
但是以上方法都不起作用,请帮帮我。但在普通javascript中,ajaxRequest运行良好

 ajaxRequest.onreadystatechange = function()
 {
   if(ajaxRequest.readyState == 1)
   {
      showloader();
   }

   if(ajaxRequest.readyState == 4)
   {
      hideloader();
   }
 }

尝试使用ajax的
complete
方法

确保您的圆顶中有
加载器

<div id="loading" style="display: none"><img src="loading.gif"></div>
编辑删除
async=false
,它应该可以工作

  • 对于同步ajax调用,它没有。Ajax首先被执行,所有其他进程都被阻塞/排队

试试这个,它可能对你有用,首先创建一个加载器gif图像,ypu希望将加载器默认css属性显示为display:none

<img src="loader.gif" class="loader" style="display:none;">

你能发布showloader和hideloader函数吗?你面临的问题是什么?控制台中有错误吗?没有错误,如果我使用调试器,它工作正常。但如果不使用调试器,则无法工作。请尝试将代码放入$(document).ready(function(){})中;并删除async false来检查它,如果它仍然有问题,只需创建JSFIDLE来检查确切的问题和您的代码。非常感谢,当我删除async:false时,它工作得非常好。请更新你的答案,我会勾选你的答案并投票。