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