防止 AJAX 聊天显示重复消息(Javascript、PHP、MySQL)

发布于 2024-09-29 02:12:28 字数 449 浏览 7 评论 0原文

我使用 Javascript、PHP 和 MySQL 进行了 AJAX 聊天。

我从 PHP 页面使用 JSON 发送聊天数据,该页面从 MySQL 数据库获取数据。每条聊天消息都会插入到一个数组中,并每隔几秒通过 AJAX 调用进行拉取。数据库中的每一行都有发布消息时的时间戳(时间戳以毫秒形式附加到时间戳上:1288147058.77943)。

对于每个 AJAX 请求,用户数据库中的一列都会使用上次下载聊天数据的时间戳进行更新。如下所示的查询用于检索自上次 AJAX 调用以来发布的聊天消息。

SELECT user, message FROM chat WHERE posted_time >= '$last_check_get'

然而,有时两个请求处理得如此之快,以至于两个请求发回相同的消息,因此它们会显示两次,即使它们实际上没有发布两次。我怎样才能避免这种情况?

I have made an AJAX chat using Javascript, PHP, and MySQL.

I send the chat data with JSON from a PHP page that gets the data from a MySQL database. Each chat message is inserted into an array and pulled with an AJAX call every few seconds. Each row in the database has the timestamp of when the message was posted (the timestamp has the milliseconds appended onto the timestamp in this form: 1288147058.77943).

On every AJAX request a column in the user database is updated with the timestamp of when the chat data was last downloaded. A query like the following is used to retrieve chat messages that have been posted since your last AJAX call.

SELECT user, message FROM chat WHERE posted_time >= '$last_check_get'

However, sometimes 2 requests go through so quickly that two requests send back the same messages, so they get displayed twice even though they weren't actually posted twice. How can I avoid this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事与诗 2024-10-06 02:12:28

为每条消息分配一个序列号,而不是使用时间戳。检查新消息本质上保持不变。

Instead of a using time-stamp, assign each message a serial number. Checking for new messages remains essentially the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文