Ajax jquery需要加载超时或延迟

时间:2016-09-09 07:14:45

标签: jquery ajax timeout delay loading

我正在制作一个loginscript并希望添加一个“功能”,在提交表单后,我希望它等待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;
    });

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

 $("body").setTimeout("load('home.php');", 300);

1 个答案:

答案 0 :(得分:0)

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