Или невидимый инпут с уникальным ключем привязанным к сессии пользвателя, после добавления коментария генерировать новый.
То есть 1 форма = 1 комментарий.
Нужно делать через ключ-хеш. Потому что запоминать весь текст коментария упрёмся в ограничение на размер печенюшки, плюс вся обработка на стороне пользователя.
Ну, имел в виду, если он не отправлен, то вот.
А вообще, в приличном сообществе можно и с редактированием своих комментариев жить. Даже в Википедии живут.
Ну, имел в виду, если кнопочку предпросмотра нажимали, то вот.
И было уже что-то о проверке на аналогичные комментарии, то при автоматическом обновлении сохранять. Хотя это такие малополезные нагрузки на сервер, куда шлётся столько флада…
Я с Вами полностью согласен (и с первым, и со всторым Вашими комментариями)! Это его право. Может быть он даже пишет и более осмысленные комментарии, но идентичные.
помниться я когда-то писал на php вида: (ща напишу очень примитивно, но постараюсь передать идею)
<? php
if ($_POST['mess']) {
addNewComment($_POST['mess']);
header(«Location: „. $_SERVER['PHP_SELF']);
}
вообщем после отправки записывал данные в БД и хеадерами обновлял страничку. В результате пользователь ничего не замечает, но по F5 доп. комменты не появляются.
П.С. предпросмотр показывает, что хабр съедает html код — поэтому я поудалял значки больше и меньше. Менее читабельно, но думаю всем будет понятно.
Как жаль, что нельзя редактировать коментарии после случайной отправки…
>> Смотри. Допустим 1000 человек смотрит топик. Из них 500 решает написать пост.
в итоге получаем 500 запросов, которые обрабатываются интерпретатором, и, после этого, твоим волшебным хидером еще 500 запросов, которые делают то же самое.
т.е. если взять 1000 на просмотреть + 500 запостить + 500 зарефрешить — подъем нагрузки почти на треть просто по запросам.
А как же пользователи у которых отключен js, или скрипты не прогрузились или вообще не поддерживаются… Сайт должен нормально функционировать без js, просто без «удобств» ;)
Решение: разрешить удалять собственные комментарии-дубли (при этом дублями считаются комментарии, идущие подряд на одном уровне вложенности). Чтобы не нарушалась целостность базы — при ссылке на комментарии-дубли делать ссылку на самый первый дубль. Или на самый последний — разница небольшая. Главное — именно этот дубль и запрещать удалять, после того, как он один останется.
Тем самым обеспечиваем минимальное увеличение нагрузки на сервер — не так уж часто ссылка на комментарий требуется. Значит, не так уж часто придётся сравнивать тексты. Ничего лишнего вычислять заранее и хранить не нужно. А те, кто самовыражается повторением, не лишаются такого права.
Другой вариант: как предлагалось выше, перед помещением в базу сравнивать текст комментария с предыдущим, но перед сравнением текста сравнивать время, а потом уже текст, если разница по времени ниже некоего порогового значения. Это позволит и нагрузку на сервер серьёзно не увеличивать, и избавит от подавляющего большинства технических глюков.
Ну и третий вариант до кучи: разрешить юзерам самим скрывать текст своих комментов. И уже не важно, дубль это или нет. Может, просто сказал нечто, о чём потом пожалел. Пусть по прежнему действует правило «что написано хабром — не вырубишь топором», если такое ограничение кому-то позарез нужно. Но хоть стыдливо прикрыться можно будет. Немного не в тему, но пересекается отчасти.
Предотвращение двойной отправки