gpt4 book ai didi

php - 有关数据库性能等的问题

转载 作者:行者123 更新时间:2023-11-29 12:32:26 25 4
gpt4 key购买 nike

对于学校,我必须创建一个基于 AJAX/PHP 的聊天框,有人只需输入用户名并按单击即可加入。我一切正常,但我有一些疑问,我这样做是否是正确的方法。

举个例子,我使用 JavaScript 中的 setInterval 每秒从数据库中获取最新的 5 条记录。但是如果有人在网站本身上更改了这个间隔怎么办?并使其每秒查询数据库?我正在考虑存储最后执行的查询日期并检查它是否确实是我设置的 1 秒。但我要把它存放在哪里呢?我很可能不想将其存储在我的数据库中,因为我还必须查询数据库。

还有一个问题是,专业的聊天框真的会使用间隔来检查数据库中x时间内的新记录吗?如果没有,他们如何处理?

ATM 我现在不知道该怎么做,是否有经验丰富的 PHP 开发人员可以回答这些问题?

最佳答案

每 5 秒请求一次服务器(无论是否有数据库查询)成本高昂且无法扩展。让服务器在有新消息时通知客户端,而不是让客户端每隔固定时间间隔请求一次。为此,您需要更持久的连接。有两种流行的方法:

  • Ajax 长轮询:通常,Web 服务器在成功提供内容后将关闭其连接。长轮询背后的想法是保持连接长时间打开并通过卡住来提供内容。一旦有新消息,它就会反馈给客户端。一旦连接超时,它会重新打开一个新的连接。

  • WebSocket:WebSocket允许Web浏览器和服务器通过其WebSocket协议(protocol)(类似于HTTP协议(protocol))进行持久连接。部分浏览器尚不支持此功能。

关于php - 有关数据库性能等的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27274435/

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