<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>
我试图使用超时,但它不起作用.....
答案 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