我使用Javascript,PHP和MySQL进行了AJAX聊天。
我从一个从MySQL数据库获取数据的PHP页面发送带有JSON的聊天数据。每个聊天消息都插入一个数组中,每隔几秒钟就会调用一次AJAX调用。数据库中的每一行都有消息发布时间的时间戳(时间戳以这种形式附加到时间戳上的毫秒数:1288147058.77943)。
在每个AJAX请求中,用上次聊天数据的时间戳更新用户数据库中的列。如下所示的查询用于检索自上次AJAX调用以来已发布的聊天消息。
SELECT user, message FROM chat WHERE posted_time >= '$last_check_get'
然而,有时2个请求通过如此快速的请求发送回相同的消息,因此即使它们实际上没有发布两次,它们也会显示两次。我怎么能避免这个?
答案 0 :(得分:1)
不是使用时间戳,而是为每条消息分配一个序列号。检查新消息基本上是一样的。