【发布时间】:2020-04-10 01:33:15
【问题描述】:
我们正在寻找一种简单的方法来持续更新 HTML 表格 (SPA) 以显示收到的“订单”。目前,每次我们想要查看新订单时都必须刷新页面。以我有限的前端知识,我可以想到 3 种方法来做到这一点。我将不胜感激有关最佳方法的建议:
1- 定期(每 10 秒?)发出 AJAX 请求,然后让 JS 框架(Vue 或 React)更新表格。
2- 使用 WebSocket(而不是 HTTP)使服务器能够在此类新订单到来时推送数据。
3- 使用通知服务:后端向客户端浏览器订阅的主题发送通知。这会触发前端框架中的一些代码从服务器请求新订单。这可行吗?
同样,我对前端框架(VueJS、React)如何做或不能做的了解非常有限。我不希望这成为一个成熟的项目。我们只是在为(希望如此!)非常常见的用例寻找一个简单的解决方案。谢谢。
【问题讨论】:
-
进行 AJAX 请求。没有比这更容易的了。
-
您要求最好的解决方案 - 最好使用 websockets,因为它们对服务器来说不太重要,而且只有在发送某些更改请求时。所以你不会杀死服务器,而 1000 个用户会一遍又一遍地发送 ajax 请求。
-
第一个选项称为轮询。因流量过大而阻止服务器的最佳机会。我会选择websockets。但这与前端开发无关。这是一个后端问题。前端将只处理表示层
-
还有第四种选择,基本上是从 javascript 触发页面刷新,而不是浏览器中的用户操作。它会产生与您现在所做的相同的影响,只是它会比手动触发更频繁......这是您的第一个提议的非 ajax 版本。
标签: javascript ajax reactjs vue.js frontend