首页 > 解决方案 > 在 React-Redux Web 应用程序上,我可以减少 Ajax 调用时间吗?

问题描述

3 个月以来,我一直在学习 React-Redux。真的 Redux 是一个非常好的主意。当我回顾 redux 时,我认为 Redux 似乎是一个定义为STORE的全局变量。所以在 React-Redux 应用程序中,每个组件、每个自定义钩子和其他都可以访问全局变量STORE来获取和设置。

通过这个想法,我相信我可以减少 Ajax 调用次数。例如,假设有 2 个页面,例如用户页面和房间页面。用户页面将显示用户列表,房间页面将显示每个房间的用户列表。

用户页面(一个 ajax 调用)

房间页面(两个ajax调用)

之前,每当加载页面(componentDidMount)时,我都会让用户页面和房间页面调用 ajax 来获取数据。但我只想用 Redux 调用一次 ajax。所以只有在第一次加载页面时,ajax 调用才会起作用。 我认为 Redux 是可能的,因为 Redux store 是作为一个全局变量工作的。

但我对这个想法有疑问。问题是数据同步。

假设有 2 个管理员用户(Admin#1Admin#2)可以编辑服务器数据。

现在我使用Admin#1登录,并访问了用户页面和房间页面。所以用户数据和房间数据会保存在 Redux Store 中。之后,ajax 调用不再需要用户和房间数据。

但此时,Admin#2添加/删除了一些用户。

在这种情况下,Admin#1如何获取同步数据?

我认为 websocket 似乎是一个很好的解决方案。但是整个 web 应用程序的 websocket 功能非常困难。

那么我的问题的最佳解决方案是什么?

标签: reactjsreduxreact-redux

解决方案


我想你可以试试socketio。当客户端删除/添加新用户时,它将向其他客户端(webapp)广播事件。您只需要实现一个静态 socketIO 客户端并导出所有重要函数(还要考虑回调),以便您可以在组件中导入和使用它们


推荐阅读