Javascript 使用setTimeout()的长(约30分钟)间隔的性能注意事项

Javascript 使用setTimeout()的长(约30分钟)间隔的性能注意事项,javascript,time,settimeout,Javascript,Time,Settimeout,我正在制作一个水提醒Chrome扩展,它会在通常很长的时间内(最多可达30分钟)触发一次用户通知,我想setTimeout并不是性能方面的最佳选择,所以我开始考虑promise,因为它们是异步长时间运行的,但那也不管用,所以你有什么想法吗 先谢谢你 我猜setTimeout并不是性能方面的最佳选择 setTimeout()性能足够。在性能方面没有问题 所以我开始考虑promise,因为它们是在长时间异步运行的 不,这不是承诺的目的。承诺只是流量控制工具。在你等待结果的时候,它们可以帮助你一次完成

我正在制作一个水提醒Chrome扩展,它会在通常很长的时间内(最多可达30分钟)触发一次用户通知,我想setTimeout并不是性能方面的最佳选择,所以我开始考虑promise,因为它们是异步长时间运行的,但那也不管用,所以你有什么想法吗

先谢谢你

我猜setTimeout并不是性能方面的最佳选择

setTimeout()
性能足够。在性能方面没有问题

所以我开始考虑promise,因为它们是在长时间异步运行的

不,这不是承诺的目的。承诺只是流量控制工具。在你等待结果的时候,它们可以帮助你一次完成多项任务,但它们并没有神奇地比其他任何东西更有效。他们也没有任何线索或类似的东西


在这种情况下,我要做的是每秒钟启动一个间隔,它将当前时间与在某个特定时间发生的任何预定事件进行比较。这样做的好处是,浏览器可以重新启动,您可以在停止的位置继续,而不必担心
setTimeout()

发送通知的系统管理上下文。。。从什么到哪里?实际上,你可能需要一名网络工作者来完成这项工作,具体取决于你要做什么。@Brad我只是给出了我要做的事情的背景,我要做的事情可以应用于任何任务,我正在寻找一个能在很长一段时间后(在本例中为30分钟)完成任务的代码在保持性能效率的同时。要在30分钟后执行某些操作,
setTimeout()
可以。这里没有性能问题,执行异步操作对应用程序的性能也没有任何影响。这就是为什么你的问题不清楚。目前还不清楚的是,这个通知是什么,它将去哪里。这很重要,因为Web工作人员可以在后台处理所有这些,即使页面已关闭,假设您只是在访问服务器或其他什么。此外,如果浏览器认为JavaScript上下文完全空闲,那么实际上可能会挂起它。细节很重要,你应该分享。@Brad我编辑了你要求的细节,所以你可以添加你的答案作为这个问题的答案,谢谢。什么是“水提醒”?同样,什么是发送通知,以及发送到哪里?无论您是向某个服务器发送数据,还是仅仅向用户提示某些内容,都是完全不明确的。