@paulvales

Может ли быть дублирование запросов из-за плохого интернета?

Приветствую! Есть кроссплатформенное приложение на jquery mobile, наблюдается хаотичное дублирование записей в бд. В интерфейсе во избежания человеческого фактора все предусмотрено. На бэке стоит проверка на дубль перед записей в бд. Но записи все равно есть с интервалом около 4 сек. В чем может быть проблема?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Обычно это происходит по той причине, что пользователь отправил запрос на сервер, запрос ушел, а ответ еще не пришел (и страница висит), пользователь еще раз кликает на кнопку "отправить".

Сделайте токены, которые будут уникальны для каждого экземпляра пользователя, и с которых нельзя отправлять более одного запроса (генерация токенов и их проверка должна быть на сервере). Или же блокируйте кнопку "отправить" после клика, и как придет ответ или пройдет таймаут, разблокируйте ее и выводите нужное сообщение или действие. Но у вас явно плохо работает бэк, не так, как вы думаете.
Ответ написан
Комментировать
@nrgian
Само по себе нет.

Но если плохой интернет, то пользователь или приложение может предпринимать повторные попытки. Это естествественное поведение.

Универсальный способ борьбы: уникальный ИД, сгенерированный на клиенте.
Сервер его проверяет и при обнаружении дубля или дает отлуп или записывает во всю ту же запись - и дублей не будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы