如何在10秒内向用户发出警告。刷新setInterval?

时间:2016-06-28 12:51:39

标签: javascript jquery setinterval

我正在使用setInterval刷新页面中的图形内容。当setinterval即将刷新“内容将被刷新”时,如何向用户显示警告。

例如,我的间隔使用300秒,我希望在290秒过后显示警告'内容将在10秒后刷新。是否要为每个间隔刷新图表。这该怎么做?有什么建议吗?

4 个答案:

答案 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();