В своё время, когда ещё были только фтн рассылки и о интернете знали немногие, но компьютеры были у многих, некто (кого нельзя называть в слух) придумал запуск программ двойным кликом, одно нажатие служило, для перетаскивания значков.
Прошло время, появился интернет, и везде где можно и неможно люди продолжают кликать по два раза на ссылки, кнопки и вообще на что у них получиться, у некоторых до сего дня слабый канал, бесплатные почтовые службы перегружены, и порой отправляя письмо человек не то нажимает дважды опять по кнопке отправить, не то из-за слабого канала нажимает несколько раз. В итоге ты получаешь несколько писем или с десяток одинаковых сообщений на форуме, некоторые пытаются бороться с этим, но большинство живёт как жило.
Если взять для примера почтовые программы, в них уже хоть сто раз нажми, она фиксирует конкретное письмо, но многие крупные компании не хотят с этим ничего делать, я уже устал получать по 4-5 писем с мэил.ру, я не знаю толи оно у них так глючит, толи это так яша глючит и ложит по пять писем мне в ящик.
Собственно, как с этим можно бороться:
1) Блокировать кнопку после разового нажатия — но тут есть минус, всё же иногда случается обрыв связи, вроде нажал, а пакет не ушёл.
2) Писать токен — хорошо используется в аяксе, как защиту от кэширования, можно так же писать его на страницу, но минус, что всё же иногда страницы кэшируются, и когда мне нужно отправить одно и тоже сообщение на разные адреса без использования копий или скрытых (предположим что меняя ещё в начале имя получателя), я возвращаюсь назад, меняю имя и повторяю отправку
3) Фиксировать контрольную сумму — размер каждого сообщения (передаваемых полей) фиксируем на пример md5-хэшом, если в течении короткого промежутка времени два одинаковых хэша, то чего то тут не так. Но опять же, есть минус с работой почты, может случиться, что письмо было отправлено, его случайно удалили и нужно его отправку повторить.
4) Использовать попап окошко, мол „нам кажется, что вы это письмо/сообщение уже отправляли, вы уверены, что хотите повторить его отправку?“
5) чего то ещё было в голове, но упустил видимо.. ну можно ещё мешать способы между собой.