У меня есть приложение JavaScript, которое регулярно сохраняет новые и обновленные данные. Однако мне нужно, чтобы он работал и на медленном соединении.обрабатывать HTTP-тайм аут для ajax save
Данные передаются в одном HTTP-запросе HTTP. Ответ будет возвращать вновь вставленные идентификаторы для вновь созданных записей.
Что я нахожу, так это то, что представленные данные полностью сохранены, однако иногда результат возврата истекает. Поэтому приложение-браузер не знает, что данные были отправлены успешно и попытается сохранить его снова.
Я знаю, что могу обнаружить тайм-аут в браузере, но как я могу убедиться, что данные сохранены правильно?
Какие хорошие методы обработки этого случая?
Я вижу здесь https://dba.stackexchange.com/a/94309/2599, что я мог бы включать в себя состояние ожидания:
- Получить номер транзакции с сервера
- передачу данных, будет сохранен в ожидании на сервере
- , если в ожидании транзакции уже существует, то сделать не переписывать данные, но отправлять те же результаты назад
- если получен успех, совершить незавершенную транзакцию
- если ошибка, повторите попытку
- если тайм-аут, повторите попытку
Однако я ищу более простое решение?
возможно дубликат [Timeout XMLHttpRequest] (http://stackoverflow.com/questions/1523686/timeout-xmlhttprequest) –
Я вижу, как я могу обнаружить тайм-аут на сервере, но клиент все равно, если не знает данные были сохранены без ошибок или если запрос просто истекает. – jdog
Сервер может обнаруживать дублирующий запрос сохранения, исходящий от одного и того же клиента, и просто возвращать клиенту какой-то «уже сохраненный» код. Сервер может быть исправлен, чтобы уменьшить вероятность сохранения данных, но ответ не отправляется обратно клиенту (особенно если ответ относительно невелик). – jfriend00