首页 > 解决方案 > 处理 Web 套接字异步请求时保持数据最新的最佳方法

问题描述

我正在寻找在处理 Web 套接字异步请求时保持数据最新的最佳方法,尤其是包含time信息的数据。

我有一个仪表板,当我登录/按下时, feed我将 nextFeed 时间更新为feedingInterval+ 当前记录的时间。

喂食间隔 =2 hrs

我曾经做表单提交和页面刷新。

另外,当我的用户在连接到电视的机器上打开链接时,我过去常常location.reload()每分钟都保持我的 nextFeed 时间是最新的。1

nextFeed 时间总是最新的,更糟糕​​的情况是有 100 万个滞后。


现在

增强用户体验:

我不再使用表单提交,所以没有页面刷新,我使用 Ajax POST 到网络套接字路由来广播到我的所有设备。当我收到来自 Pusher Cloud 的任何推送通知时,我会在我的所有设备上动态更新 DOM。


问题

我过去每 1 分钟刷新一次页面,因为我不再执行 ( location.reload();) 了。我的喂食时间会过时(不是最新的)。

当前解决方案:

我创建了一个 API 来获取 nextFeed 时间,每 5 秒调用一次,并且每 5 秒更新 DOM。我注意到我的浏览器看起来很热,可能是因为一分钟内请求太多。

然后你可能会说/想......然后每分钟都打电话......

但是......如果我每1分钟打一个电话,那么我的用户将不会有最新的信息,这违背了我首先做 websocket 的目的。

我应该怎么做才能拥有最好的用户体验,但又不会影响我的性能?

https://www.bunlongheng.com/baby/5db53c4c-5be4-4aa2-b9f6-b564acb871ac?code=d3s!gn

在此处输入图像描述

标签: javascriptphpjquerylaravellaravel-7

解决方案


推荐阅读