Я разрабатываю приложение PHP-MySQL, которое позволяет зарегистрированным пользователям вводить текстовые комментарии. Проблема:
- Вход пользователя на веб-сайт - OKAY
- Пользователю предоставлена форма для отправки текстового комментария - OKAY
- Пользователь вводит текстовый комментарий и отправляет - OKAY
- У меня есть процедура, которая очищает комментарий и сохраняет его в MySQL (с идентификатором пользователя, текстовым комментарием, отметкой даты и времени) и представляет пользователю, что его комментарий введен - OKAY
- Пользователь решает обновить браузер - вводится повторный комментарий - ПЛОХО!
Я думал 3 варианта:
- ВАРИАНТ 1: Процедура, которая проверяет: последний раз пользователь оставлял комментарий, и если так, проверьте, является ли он дубликатом. Если дубликат, отобразится сообщение об ошибке.
- ВАРИАНТ 2: Процедура, которая не позволяет пользователю публиковать сообщения слишком быстро. Так что в основном не допускайте публикации комментариев в течение 1 минуты или около того. Поэтому, если браузер обновлен, комментарий будет проигнорирован.
- ВАРИАНТ 3: Управляйте кэшем браузера, чтобы очистить его содержимое, чтобы при обновлении дубликат не вводился.
Теперь, в контексте моего приложения, меня беспокоит OPTION 1 и OPTION 2 - производительность PHP-MySQL, поскольку у меня уже есть различные запросы на одной странице, которые отправляют / получают данные из баз данных. Таким образом, ВАРИАНТ 3 может быть нацелен на проблему по-другому.
Вопросы: если я выберу ВАРИАНТ 3, можно ли это считать лучшей практикой? что означает очистка кэша браузера - лучшее и наиболее эффективное решение? Я читал, что есть последствия тоже? ваши мысли ценятся!