我正在使用setInterval刷新页面中的图形内容。当setinterval即将刷新“内容将被刷新”时,如何向用户显示警告。
例如,我的间隔使用300秒,我希望在290秒过后显示警告'内容将在10秒后刷新。是否要为每个间隔刷新图表。这该怎么做?有什么建议吗?
答案 0 :(得分:1)
类似的东西:
var interval;
var secondsPassed = 0;
function refreshWithMessage() {
interval = setInterval(function(){
if(secondsPassed == 290) {
//showMessage with options
}
if(secondsPassed == 300) {
clearInterval(interval);
//do what you need here (refresh page?)
}
secondsPassed++;
}, 1000)
}
如果您需要让用户取消间隔 - 您应该只清除间隔,然后将秒变量重置为0.
答案 1 :(得分:1)
您应该将间隔设置为290000ms,然后它将显示警报,然后您使用setTimeout在10秒后更新您的页面,如下所示:
setInterval(function() {
alert("10 seconds to update")
setTimeout(function() {
//REFRESH PAGE
},5000);
}, 10000);

答案 2 :(得分:1)
在您的页面加载中,您可以刷新290秒
setInterval(function(){
showDialogBox("do you want to refresh");
}, 290000);
然后在确认按钮上添加一个操作,该操作将延迟最后10秒
confirmButtonOnClick(){
setInterval(function(){
refresh();
}, 10000);
}
答案 3 :(得分:1)
在这种情况下,我更倾向于使用setTimeout
而不是setInterval
,因为它可以提供更好的控制。
所以我设置了两个定时器 - 一个用于警告,另一个用于超时本身,然后我重新启动两个定时器。
const timeoutWarning = 1800;
const timeoutDone = 2000;
function showWarning() {
console.log('About to time out...');
}
function doTimeout() {
console.log('Timeout reached');
setWarnings();
}
function setWarnings() {
setTimeout(showWarning, timeoutWarning);
setTimeout(doTimeout, timeoutDone);
}
setWarnings();