Я создал чат AJAX с использованием Javascript, PHP и MySQL.
Я отправляю данные чата с JSON со страницы PHP, которая получает данные из базы данных MySQL. Каждое сообщение чата вставляется в массив и обрабатывается вызовом AJAX каждые несколько секунд. Каждая строка в базе данных имеет метку времени, когда сообщение было отправлено (к метке времени добавляются миллисекунды к метке времени в этой форме: 1288147058.77943).
При каждом запросе AJAX столбец в базе данных пользователей обновляется с отметкой времени последней загрузки данных чата. Запрос, подобный следующему, используется для получения сообщений чата, которые были опубликованы после вашего последнего вызова AJAX.
SELECT user, message FROM chat WHERE posted_time >= '$last_check_get'
Однако иногда 2 запроса выполняются так быстро, что два запроса отправляют обратно одни и те же сообщения, поэтому они отображаются дважды, даже если на самом деле они не были опубликованы дважды. Как я могу избежать этого?