加载文档后,我想刷新一次页面。所以我写了这段代码。它工作正常,但它一次又一次地调用。因为我正在刷新同一页面。但我想在执行一次后清除间隔。
function refreshPage(){
document.location.reload(true);
alert('page is refresh.');
}
var interval = setTimeout('refreshPage()', 3000);
加载文档后,我想刷新一次页面。所以我写了这段代码。它工作正常,但它一次又一次地调用。因为我正在刷新同一页面。但我想在执行一次后清除间隔。
function refreshPage(){
document.location.reload(true);
alert('page is refresh.');
}
var interval = setTimeout('refreshPage()', 3000);
如果您希望它只工作一次,无论延迟如何,您都可以将您所做的事实存储在 localStorage 中:
function refreshPage(){
alert('page will refresh.');
document.location.reload(true);
localStorage['refreshDone'] = 'yes';
}
if (!localStorage['refreshDone']) {
setTimeout('refreshPage()', 3000);
}
但是您不能简单地清除超时或间隔,因为每次重新加载页面时窗口变量都会丢失。
由于我不确定您的确切目标,如果您想在最近没有完成的情况下刷新,您可以在 localStorage 中存储一个时间戳:
function refreshPage(){
alert('page will refresh.');
document.location.reload(true);
localStorage['refresh'] = new Date().getTime();
}
var lastTimeRefresh = parseInt(localStorage['refresh']||'0', 10);
if (new Date().getTime() - lastTimeRefresh > 30*60*1000) { // 30 minutes
setTimeout('refreshPage()', 3000);
}
您可以在第一次刷新时设置 javascript cookie,然后检查是否设置了 cookie,如果没有设置,请设置 cookie 并刷新页面,如果没有则什么都不做