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

Posted

技术标签:

【中文标题】显示消息后重新加载页面,jQuery【英文标题】:Reload page after message is shown, jQuery 【发布时间】:2012-01-14 08:29:15 【问题描述】:

现在我有一个用户输入信息的表单。它比处理 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;

那么我如何在显示&lt;p&gt; Your article was successfully added!&lt;/p&gt; 消息后重新加载页面,稍微延迟 2 到 3 秒,这样用户才能真正阅读消息。

【问题讨论】:

【参考方案1】:

您可以使用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

【讨论】:

由于某种原因它不起作用,可能是因为return false?【参考方案2】:

用类似的东西来做:

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


setTimeout('delayedRedirect()', 3000)

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

由于某种原因它不起作用,可能是因为return false? 不,只有当您尝试立即重新加载页面时才会出现问题。此外,按照您在另一条评论中的说明更改代码的顺序不会有任何区别。也许是错字?【参考方案4】:

你的意思是像:window.location.reload() in javascript

【讨论】:

由于某种原因它不起作用,可能是因为return false?【参考方案5】:

给它使用

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;

【讨论】:

由于某种原因它不起作用,可能是因为return false? 出于某种原因,我需要在 $("#st_message").htm... 之前添加它,现在可以使用了,谢谢 )))【参考方案6】:

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

【讨论】:

【参考方案7】:
 $.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
  
 );

【讨论】:

【参考方案8】:
<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>

【讨论】:

【参考方案9】:

示例:

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;
            

【讨论】:

以上是关于显示消息后重新加载页面,jQuery的主要内容,如果未能解决你的问题,请参考以下文章

页面加载后在上一节重新打开 jQuery 手风琴

表单提交后 Jquery.validate() 不“重新加载”(meteor.js)

如何在 DJango 中停止页面重新加载 ajax jquery

jquery load加载动态页面

重新加载页面后,Service Worker 显示为已删除

如何在 jQuery 中强制页面刷新或重新加载?