我们有一个使用React和NodeJS构建的生产Web应用程序。它用于iPad上的生产环境。当工人完成一个托盘时,他们将为该订单点击“加1”,以统计给定订单的托盘。
问题是,当他们第一次拿起iPad开始一天的工作时,在他们刷新页面之前,上一个班次的旧订单仍然会显示在页面上。因此,如果他们忘记刷新页面,他们将在不再打开的订单上“加1”,并导致问题。所以我在想办法。我的两个想法是在他们开始轮班之前自动刷新页面,每天在特定的时间。或者至少弹出一条消息,“您需要刷新页面”。
什么是解决这个问题的办法?如果在发送刷新或弹出消息的信号时,iPad是关闭的呢?
我在这个应用程序中使用了websockets。所以这也是一种选择。
1条答案
按热度按时间kx7yvsdv1#
我们也有类似的需求,而且确实涉及到一些业务决策(如果你事先不知道客户端何时需要重置其状态,你通常需要像WebSocket这样的服务器到客户端的通信),但是如果你事先知道(在你的描述中:在固定的工作班次之间),那么一个非常简单的解决方案包括定期检查当前时间与该时间限制,并在超过该时间限制时重置状态(刷新、路由到主页、显示弹出消息等)。
例如在React中:
注意:避免在浏览器中出现太长的延迟,因为它们并不完全可靠。
你也可以检查页面何时再次激活,通常使用
"visibilitychange"
事件,或者在React中,例如。使用reactusesuseDocumentVisibility
钩子: