2017-10-15 78 views
0

我只想知道在JS中给定日期执行函数的最佳方法。我的第一个想法是在网络工作人员中运行一个循环,检查每一分钟是否在我应该显示通知的那一刻,但是我想知道是否有更简洁的方法来实现它。在给定的日期时间在JavaScript中执行代码的最佳方式

有什么想法?

PS:我真的不需要任何答案,因为我使用的是cordova plugin local-notifications,我使用'at'参数,这个问题是纯粹的好奇/学习。

编辑: 有些人觉得这个问题太广,实际上它是广泛的,不是太宽(我不是问“?如何发送通知”),这一切的时候,我正在寻找对于一般算法/解释在这里有丰富的答案,欢迎任何平台的解释,以帮助每次都掌握问题的差异。

+1

这个去哪里运行?节点?移动应用? – diegoaguilar

+3

我会想象最好的方法是制定出目标时间多久,然后使用'setTimeout'。 – Shadow

+0

任何地方,它都是纯粹的好奇心。如果你可以给我解释,这将是完美的! –

回答

1

那么这真的取决于你的应用程序的生活位置。如果它在浏览器,节点等中,最简单但也很脆弱的解决方案是计算现在和执行时间之间的差值(以毫秒为单位)。然后只是setTimeout()与那个区别。但是,如果浏览器刷新,那么当然,除非您再次运行相同的事情,否则超时将消失。

但是不知道更多关于应用程序的结构和性质,它很难得到更具体的。

+0

有趣!我想如果魔术在网络工作者中运行,浏览器刷新应该不是问题吧? –

+0

你没有得到任何好处,因为这种事情使用webworker。如果浏览器刷新,工人就会死亡。他们不坚持。如果你需要一些全防调度程序,你需要的应用程序可以投票或通过WebSocket的连接到接收通知的后端服务。 – Geuis

+0

好吧这是有道理的,所以我认为时间检查MECANIC应该是在服务器端和发送即时消息给客户端,这将使得显示通知的工作。似乎是一个很好的解决方案,尤其是跨平台应用程序! –

相关问题