是否可以在localstorage中存储setTimeout函数?

前提是我有以下javascript代码。

var timeout = setTimeout(function(){ alert('this is executed after 5 seconds'); }, 5000); localStorage.setItem('timeout_event', timeout); 

我已经检查了setTimeout函数的返回值是一个id或者什么。 如果用户刷新页面,我该如何重新运行超时事件? 它甚至可能吗?

任何帮助都可以。 先感谢您。

我已经检查了setTimeout函数的返回值是一个id或者什么。

是的,它是一个数字ID,您可以将其传递给clearTimeout以取消计划的函数运行。

如果用户刷新页面,我该如何重新运行超时事件?

是的,当页面被卸载时,所有未完成的超时都将中止,因此您需要在新页面上重新启动超时。

它甚至可能吗?

是的,不是。 您将无法运行您从最后一页调度的函数 – 它的所有上下文/范围都将丢失 – 您需要在新页面的上下文中创建一个新函数。

但是,如果要根据页面的超时/间隔执行某些function,可以使用DOM存储或类似方法。 您将存储指定函数运行的时间戳,以及是否已运行的标志。 这样,您可以检查以下页面是否以及何时需要重新安排该function。

如果您希望在刷新页面时执行超时function,只需在window.onload添加该function即可

 var timeout = setTimeout(function(){ alert('this is executed after 5 seconds'); }, 5000); window.onload = timeout; 

这对我来说很好

如果你想要多次执行它,那么去setInterval()

 var timeout = setInterval(function(){ alert('this is executed for each second'); }, 1000); window.onload = timeout; 

它将被执行,直到你调用clearInterval(timeout);

如果你想要多次超时,那么你应该做这样的事情

 var timeout = setTimeout(function(){ alert('this is executed after 1 second'); }, 1000); var timeout1 = setTimeout(function(){ alert('this is executed after 2 seconds'); }, 2000); var timeout2 = setTimeout(function(){ alert('this is executed after 3 seconds'); }, 3000); window.onload = timeout;timeout1;timeout2; 

这是因为setTimeout会在刷新页面后立即计算时间,这对我来说很好

谢谢你的帮助。

我设法找到解决问题的方法。

    Testing    This is the test page.   

我希望这对其他人有用。

再次,谢谢大家。