gpt4 book ai didi

database - 客户端应用程序立即响应数据库更新的最佳方式是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:43:55 25 4
gpt4 key购买 nike

编写对数据库中数据更新的即时 react 的最佳方法是什么?

我能想到的最简单的方法是一个线程,该线程检查数据库中某些数据的特定更改,并在预定的时间长度内持续等待再次检查它。这个解决方案对我来说似乎是浪费和次优的,所以我想知道是否有更好的方法。

我认为一定有某种方式,毕竟,像 gmail 这样的网络应用程序似乎能够在新电子邮件发送给我后几乎立即更新我的收件箱。当然,我的客户不会一直不断地检查更新。我认为他们这样做的方式是使用 AJAX,但我不知道 AJAX 如何表现得像远程函数调用。我很想知道 gmail 是如何做到这一点的,但我最想知道的是在一般情况下如何使用数据库做到这一点。

编辑:请注意,我想立即对客户端代码中的更新使用react,而不是在数据库本身中,因此据我所知,触发器无法做到这一点。基本上,我希望用户在数据库发生更改后收到通知或更新他的屏幕。

最佳答案

这里基本上有两个问题:

  1. 您希望浏览器能够从 Web 应用程序服务器接收异步事件,而无需在紧密循环中进行轮询。

  2. 您希望 Web 应用程序能够从数据库接收异步事件,而无需在紧密循环中进行轮询。

对于问题#1

有关我认为您正在寻找的技术类型,请参阅这些维基百科链接:

编辑:2009 年 3 月 19 日 - 刚刚遇到 ReverseHTTP这可能对问题 #1 感兴趣。

对于问题#2

解决方案将特定于您正在使用的数据库,也可能是您的服务器使用的数据库驱动程序。例如,使用 PostgreSQL你会用 LISTENNOTIFY . (并且冒着被否决票的风险,您可能会使用数据库触发器在表数据发生更改时调用 NOTIFY 命令。)

另一种可能的方法是如果数据库有 an interface创建链接到动态库(即 DLL 或 .so 文件)的存储过程或触发器。然后你可以在 C or whatever 中编写服务器信令代码.

在同一主题上,一些数据库允许您使用 Java, Ruby 等语言编写存储过程。 , Pythonothers .您也许可以使用其中之一(而不是像 C 那样编译成机器代码 DLL 的东西)作为信号机制。

希望这能给您足够的想法来开始。

关于database - 客户端应用程序立即响应数据库更新的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com