显示消息后重新加载页面,jQuery

时间:2011-12-06 18:35:45

标签: jquery ajax reload

现在我有一个用户输入信息的表单。它比bu jQuery ajax函数处理并设置为return false;,因此在用户提交表单后不会发生页面重新加载。 虽然我需要重新加载页面,但是如果我删除return false;它会在显示成功消息之前刷新页面(在用户提交数据后显示此消息)。

     $.ajax({
      type: "POST",
      url: "scripts/process.php",
      data: dataString,
      success: function() {
       $("#st_message").html("<p> Your article was successfully added!</p>");
       //I need to reload page after the above message is shown
      }
     });
    return false;

那么如何在显示<p> Your article was successfully added!</p>消息后重新加载页面,稍有延迟,比如2 - 3秒,这样用户就可以实际阅读该消息。

9 个答案:

答案 0 :(得分:27)

您可以使用setTimeout()功能添加延迟,例如:

// This will reload the page after a delay of 3 seconds
window.setTimeout(function(){location.reload()},3000)

根据您的需求:

$.ajax({
      type: "POST",
      url: "scripts/process.php",
      data: dataString,
      success: function() {
           $("#st_message").html("<p> Your article was successfully added!</p>");
           window.setTimeout(function(){location.reload()},3000)
      }
});
return false;

<强> Working Example

答案 1 :(得分:3)

用以下的方式做到:

function delayedRedirect(){
    window.location = "/index.php"
}

setTimeout('delayedRedirect()', 3000)

setTimeout用于延迟重定向函数调用,在这种情况下,您可以将某个位置重定向到新的URL(以防您也需要它)。

否则使用location.reload()重新加载页面。

答案 2 :(得分:2)

您的意思是:JavaScript中的window.location.reload()

答案 3 :(得分:2)

使用

给它
setTimeout("window.location='yourpage.php'",3000);
你的代码中的

 $.ajax({
       type: "POST",
       url: "scripts/process.php",
       data: dataString,
       success: function() {
        $("#st_message").html("<p> Your article was successfully added!</p>");
        setTimeout("window.location='yourpage.php'",3000);//reload after 3 sec.
       }
      });
 return false;

答案 4 :(得分:2)

使用setTimeout方法获取延迟,使用reload方法重新加载页面。请注意true调用中的reload参数,以确保实际重新加载页面,而不仅仅是从缓存中重新绘制。

window.setTimeout(
  function(){
    location.reload(true)
  },
  3000
);

答案 5 :(得分:1)

 $.ajax({
  type: "POST",
  url: "scripts/process.php",
  data: dataString,
  success: function() {
  var miliseconds = 2000;

   $("#st_message").html("<p> Your article was successfully added!</p>");
   setTimeout("window.location=window.location", miliseconds);
   //I need to reload page after the above message is shown
  }
 });

答案 6 :(得分:1)

<script type="text/javascript">
 //
 //your action here
 //
 window.setTimeout(function(){self.parent.location="?list"},3000);//after 3 sec go to (?list or example.html page)
 return false;
</script>

答案 7 :(得分:1)

使用超时是一个非常糟糕的主意。

答案 8 :(得分:0)

示例:

success: function(data){
            $("#loading-img").css("display","none");
                 swal({
                  title: "Félécitations",
                  text: "Votre demande a été transmise au service concerné",
                  icon: "success",
                  button: "OK",
                });
            window.setTimeout(function(){location.reload(true)},3000)
            }
            
            });
            return false;
            }