剩余参与人数是否需要通过后台和数据库更新?

问题描述 投票:0回答:1

我正在开发一个基于Reactjs和MySQL的研讨会注册Web应用程序。每个工作坊有不同的最大参与人数。因此,一旦参与者选择了特定的工作坊,相应工作坊的参与次数将被扣除1。

到目前为止,我正在使用 Context API 和 useReducer 来管理状态(添加 Workshop、删除 Workshop)。而添加/删除工坊的逻辑是由userReducer完成的。用户也应该在 Web 应用程序上被动地看到这个最大参与人数。我的问题是,我应该以某种方式将这个“数字”更新到数据库中以便在全球范围内更新它吗?因为有不同的用户会注册同一个工坊,所以这个号码应该从数据库中提取,以确保它是最新的。

抱歉,如果我问了一个相对愚蠢的问题。我只是很困惑。

mysql reactjs
1个回答
0
投票

根据不同的场景,可以有多种选择。根据您应用程序的重要性,您所使用的可能也是正确的。可能您希望在每次调用时更新数据库,然后更新用户界面,或者您可以更新用户界面,然后更新数据库。这完全取决于哪种方法适合您的应用程序。我可以列出几个。

  1. 数据库更新 每当参与者注册参加研讨会时,您确实可以在数据库中更新每个研讨会的最大参与者数量。这可确保数据始终是最新的并准确反映当前状态。然而,频繁的数据库更新可能会影响性能,特别是当有许多用户同时注册参加研讨会时。
  2. 乐观更新 您还可以在客户端实现乐观更新。当参与者注册参加研讨会时,您可以立即更新 UI 以反映更改(例如,减少可用插槽),而无需等待服务器的确认。然后,您可以在后台向服务器发送注册请求并更新数据库。如果服务器返回错误(例如,如果创意工坊已满),您可以将 UI 恢复到原始状态
  3. 实时更新如果实时更新对您的应用程序很重要,您可以考虑实现 WebSocket 或服务器发送事件 (SSE),以便在研讨会的最大参与者数量发生变化时将更新从服务器推送到客户端。这样参与者无需刷新页面即可看到最新信息。
© www.soinside.com 2019 - 2024. All rights reserved.