javascript - 是否可以将 setTimeout 函数存储在本地存储中?

标签 javascript jquery local-storage settimeout

前提是我有下面的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/

相关文章:

javascript - 为什么 Electron 应用程序从开发工具访问时没有 localStorage 对象? (Ctrl-Shift-I)

javascript - 捕获页面加载后创建的 <img> 标签的 img 加载错误(例如通过 AJAX)

javascript - 鼠标悬停时隐藏很多div

database - 如何判断电脑上是否安装了oracle数据库

javascript - 在 asp.net 中使用 jquery 选项卡的 OnClick 函数

javascript - 在 UISlider 下添加数字

javascript - 使用 Angular 本地存储模块将元素存储在本地存储中的数组中

javascript - 通过 JavaScript 选择文本

javascript - Salesforce 自定义按钮返回“意外 token 非法?”

javascript - 单击 Backspace 按钮时 jQuery 过滤器不起作用