繁体   English   中英

5秒后javascript刷新页面

[英]javascript refresh page after 5 secs

<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>

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

你可以使用setTimeout

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

这是一种“暂停”JavaScript或更好的方式,等待执行一些功能。

所以它会是:

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

你试图通过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>

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

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

<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
});

更多说明检查演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM