前提是我有下面的javascript代码。
var timeout = setTimeout(function(){
alert('this is executed after 5 seconds');
}, 5000);
localStorage.setItem('timeout_event', timeout);
我已经检查过 setTimeout 函数的返回值是一个 id 或其他东西。如果用户刷新页面,如何重新运行超时事件?有可能吗?
任何帮助都可以。提前谢谢你。
最佳答案
I have checked the return value of the
setTimeout
function to be an id or something.
是的,它是一个数字 ID,您可以将其传递给 clearTimeout
以取消计划的函数运行。
If the user refreshes the page, how do I re-run the timeout event?
是的,当页面卸载时,所有未完成的超时都将中止,因此您需要在新页面上重新启动超时。
Is it even possible?
是也不是。您将无法运行您从最后一页安排的功能 - 它的所有上下文/范围都将丢失 - 您需要在新页面的上下文中创建一个新的。
但是如果你想基于跨页面的超时/间隔执行某些功能,你可以使用 DOM storage 来实现。或类似的。您将存储指定函数运行的时间戳,以及它是否已经运行的标志。这样,您可以在后续页面上查看是否以及何时需要重新安排该功能。
关于javascript - 是否可以将 setTimeout 函数存储在本地存储中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16184027/