javascript - 处理 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
解决方案
推荐阅读
- javascript - 无法解构从 api 获取的对象
- java - 如何返回通过在函数内通过循环添加的值?
- c++ - 在 Turbo C++ 内联汇编中使用 32 位寄存器,如 EAX
- javascript - 1分钟倒计时js计时器循环不起作用
- c - 使用 qsort 函数的建议方法
- html - 如何将图像添加到网站超链接
- django - 如何在 django 模板中使用特殊变量?
- python - Python中的轮盘赌选择
- sql - 如何为不同的产品/类别创建性别划分(比率)及其随时间的变化
- rest - How to generate automatic Id with Commit or Batch Document Firestore REST