2017-12-27 124 views
0

我有一段数据,当数据到期时要更新,此数据有一个存储值和到期日期,两者都是日期/时间(以毫秒为单位)。更新基于浏览器中的时间到期的数据

我试图找出最好的方法来做到这一点,我想我需要让浏览器跟踪时间和当前时间匹配到期时间,然后我可以打电话更新。

我不确定是否会让浏览器意识到这一点是什么? 该项目是React App,我也在考虑使用socket.io作为另一种选择。

编辑:希望避免使用setTimeout,因为我需要调用此生命周期方法来检查。理想情况下,如果用户永远不会离开页面/组件,那么就不会触发新的生命周期方法,但我仍然希望检查并将更新推送给它们。

回答

0

这个过期后会有新的数据点吗?

您可以查看当前数据在挂载时仍然有效的时间。然后,为该持续时间设置一个超时,它将调用函数来获取新的数据点。之后,继续使用该逻辑。基本上,有一个基于到期日期减去Date.now()的变量setTimeout值。

+0

调用相同的点,但即时通讯寻找一种方式来做到这一点,而不使用setTimeout或检查willMount,如果用户留在页面上,永远不会离开,我还想更新。不幸的是,这意味着用户永远不会去任何地方,所以生命周期不会被启动。 –

+0

嗯,我猜你可以设置一个套接字来推动新的数据点并更新该事件的视图。拥有一个带有过期日期的静态对象将需要您执行类似setTimeout的操作。您甚至可以让后端为数据点设置超时,并通过套接字将事件发送给所有正在侦听的客户端。 –