reactjs - 反应:总是获取数据或保存数据前端
问题描述
所以我正在用 React 开发一个 IoT SaaS 项目。用户选择一个传感器和一个时间范围,并以大约 5 分钟的分辨率接收以图表形式显示的数据。我的问题是关于在前端处理获取和保存此数据时的最佳实践。我一直尝试获取工作正常的方法,但会使系统有点慢。当用户在传感器之间快速来回切换时尤其如此。我也尝试过保存数据,就像反应状态下的 json 一样。这显着提高了性能,但还有很多其他问题。浏览器开始抱怨 ram 的使用,有时会出现内存不足的错误。还有很多需要的数据处理,例如为同一个传感器保存多个非连续数据范围,定位和合并日期范围重叠等......
所以我想知道这里的最佳做法是什么,我应该总是在前端获取还是保存?有没有我可以使用的框架来帮助我处理数据前端,或者我必须手动执行此操作。
解决方案
将所有数据保存在前端是一种反模式。因为内存和不同步问题。为了使您的系统看起来更快并使用后端数据,您可以尝试以下操作:
- 乐观的反应。该技术在执行实际请求时,在前端使用了一些后端逻辑的简化部分。因此,用户将在后端数据到达浏览器之前看到结果。假设您正在后端进行 +1 操作。用户发送数字 2 来执行此操作。所以在你的前端你可以使用一些东西
const optimisticResponse = (userData) => userData + 1
。然后,当您从后端获取数据时,您可以覆盖所需的值 - GraphQL允许您通过仅向后端询问您需要的数据来减少开销。
推荐阅读
- codeigniter - 如何在屏幕上的 CI 查询中回显多个 where 子句
- javascript - 如何在 JavaScript 问题中检查字符串是否为真
- docker - docker暴露的端口无法正常工作
- python - xarray 将新的二维坐标设置为维度
- python - 如何使用输入文件的相同名称作为输出文件的名称?
- bash - 排序数据卷号
- javascript - Mongoose 通过 ID 查找,然后在数组中查找特定 ID
- php - 将 HTML 模板转换为 wordpress 后,Ekko-Lightbox 停止工作
- crystal-reports - 如何根据页码划分水晶报表输出
- tensorflow - 如何将 CustomVision.ai TensorFlow/TensorFlow Lite 模型转换为适用于 TFLite 对象检测 API 的模型?