需要超时或加载延迟,Ajax jquery

Need a timeout or delay on loading, Ajax jquery

我正在制作一个登录脚本并想添加一个 "feature" 在他们提交表单后,我希望它等待 1-2 秒直到它登录。

我试过让它工作,但加载只是一闪而过,不要如我所愿地延迟。请参阅以下 jquery:

$(document).on({
ajaxStart: function() { $body.addClass("loading");    },
 ajaxStop: function() { $body.removeClass("loading"); }    
});



$(document).ready(function() {

        $('#login').click(function()
            {
              var my_delay = 2000;
              var username=$("#username").val();
              var password=$("#password").val();
              var dataString = 'username='+username+'&password='+password;
              if($.trim(username).length>0 && $.trim(password).length>0)
              {
                 $.ajax({
                 type: "POST",
                 url: "ajaxLogin.php",
                 data: dataString,
                 cache: false,
                 beforeSend: function(){      
                   $("#login").val('Connecting...');},
                 success: function(data){
                   if(data)
                   {
                       $("body").addClass("loading").delay(6000);   // <-- This I want to show 2 seconds before or meanwhile it loads home.php
                       $("body").load("home.php").hide().fadeIn(1500);
                   }
                   else
                   {
                       $('#box').shake();
                       $("#login").val('Login')
                       $("#error").html("<span style='color:#cc0000'>Fel:</span> Felaktigt anv eller lös. ");
                   }
                 }
           });

        }
        return false;
    });

我试过了,但它只是让加载停留并且在 3000 毫秒后不会重定向到 home.php。

 $("body").setTimeout("load('home.php');", 300);
$('body').delay(2000).queue(function( nxt ) {
    $(this).load('home.php');
    nxt();
});