如何让页面在转发到另一个页面之前等待?

时间:2012-12-03 01:53:41

标签: javascript jquery ajax

我目前正在成功重定向到主页,基于成功我希望在重定向发生之前使页面等待30或50秒,我想在等待时发出500内部错误消息。 / p>

    $(function() {  
                 $("#save").click(function() {  

                    $.ajax({  
                        type: "POST",  
                          url: "cng.json",  
                          data: json_data,  
                          contentType : 'application/json',
                           success: function(data, textStatus, xhr) {                          
                                console.log(arguments);
                                console.log(xhr.status);
                                alert("Your changes are being submitted: "+ textStatus +" : "+ xhr.status);
//modal window message
    $('<div id="loading">Loading...</div>').insertBefore('#myform');
                        // add code here to wait for 30 sec before redirecting and check for 500 error code     
                                 location.reload(true);

                           },

                            error:function(jqXHR, textStatus, errorThrown) {
                          alert( jqXHR.responseText+" - " +errorThrown + " : " +jqXHR.status);                       

                           }
                        }); 

                  });  
                });  

2 个答案:

答案 0 :(得分:1)

只需使用timeout

setTimeout(function() {
    location.reload(true);
}, 30000);
是的,30秒非常长。

答案 1 :(得分:0)

我会在触发ajax调用时定义一个标志,然后在成功时放入一个setTimeout。

setTimeout(check_redirect, 30000);

如果错误触发,则将标志设置为false

当计时器用完时,您的回调将被触发,检查标志并继续视情况:

function check_redirect()
{
   if(flag===true)
   {
      location.reload(true);
   }
}