5秒后javascript刷新页面

时间:2014-05-15 09:06:02

标签: javascript php

<a href="newpage.php" target="_blank" onClick="openWindowReload(this)">update</a>
    <script>
        function openWindowReload(link) {
            var href = link.href;
        window.open(href,'_blank');
        document.location.reload(true)
        }
</script>

所以我有这个代码,点击链接'更新'后自动刷新当前页面

我想要的是在5秒后刷新当前页面....为什么?

在newpage.php我正在更新一个表,如果当前页面重新加载速度非常快,它将无法获取更新的数据,而是获取旧数据... ps对不起我的英语不好。 。 。

有没有什么方法可以暂停刷新当前页面的javascript ..如果有人可以告诉我如何......

提前感谢....

更新

<script>
        setTimeout(function openWindowReload(link) {
        var href = link.href;
        window.open(href,'_blank');
        document.location.reload(true)
        }, 5000);
</script>

我试图使用超时,但它不起作用.....

4 个答案:

答案 0 :(得分:2)

您可以使用setTimeout

setTimeout(function() {
    document.location.reload(true);
}, 5000);

这是一种暂停&#39; JavaScript,或更好,等待执行一些功能。

所以它会是:

function openWindowReload(link) {
    var href = link.href;
    window.open(href,'_blank');
    setTimeout(function() {
        document.location.reload(true);
    }, 5000);
}

答案 1 :(得分:0)

您正试图通过javascript代码打开窗口,由于安全原因,动态弹出/窗口将被阻止,直到您不允许打开弹出窗口。

如果允许在浏览器上弹出

,代码将正常工作
<a href="newpage.php" target="_blank" onClick="return openWindowReload(this)">update</a>

<script>
      function openWindowReload(link) {
          setTimeout(function(){  
          var href = link.href;
            window.open(href,'_blank');
            document.location.reload(true)
            }, 5000);
          return false;
    }
    </script>

答案 2 :(得分:0)

对于您要完成的任务,我将使用对服务器的AJAX调用来执行表更新,并假设更新是同步的(您的服务在返回之前等待更新完成),然后您更新客户端内容或者从回调事件处理程序刷新页面。这样你就不必等待任意时间,再加上如果你已经决定需要5秒,那么甚至可能有5秒就不够了。

问题的根源似乎是竞争条件,而不是简单地从执行更新的同一连接查询表。大多数更新在不到一秒的时间内完成,您可以在以串行方式执行这两项操作时阻止初始页面,并避免竞争条件。

答案 3 :(得分:0)

<button type="button" name="update" class="update">Update</button> 


$(".update").on('click', function(event){
        setTimeout(function() {
        document.location.reload(true);
    }, 5000); //5000 means 5 second After 5 second page is autmatically refresh
});

更多说明检查Demo