Ответ AJAX из базы данных создает повторяющиеся записи - PullRequest
0 голосов
/ 05 мая 2011

Я пытаюсь создать простой форум, где вопросы будут обновляться автоматически. Хотя это сделано, у меня есть две проблемы. 1 Поскольку я получаю последнее обновление из базы данных, последняя запись дублируется. 2 Div, где я помещаю ответ AJAX, всегда обновляется. Как я могу удалить дубликаты и сделать форум гладким, как на странице комментариев в Facebook?

1 Ответ

0 голосов
/ 05 мая 2011

Если я понимаю вашу первую проблему, вы говорите, что делаете что-то вроде:

  1. Принять ввод пользователя (т.е. новую запись)
  2. Запишите эти данные в вашу базу данных
  3. Выберите все записей, включая только что добавленную

Поскольку вы также отдельно добавляете новый ответ на клиентскую часть div или что-то еще, последняя запись всегда отображается дважды (но не записывается в базу данных дважды). Если это так, вы можете решить эту проблему, пропустив последнюю запись в запросе MySQL (например, SELECT * FROM entries WHERE id != (SELECT MAX(id) FROM entries)) или просто воздерживаясь от обработки записи на стороне клиента.

По поводу вашей второй проблемы: Вместо того, чтобы извлекать все записи и заменять все содержимое внутри div новым списком записей, попробуйте добавить только новую запись, например, с .innerHTML += ... или jQuery's .append(). Таким образом, вы не будете испытывать мерцание или перепрыгивание контента с остальными ответами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...