Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery ajax организация стабильной отправки данных (https://javascript.ru/forum/jquery/58811-jquery-ajax-organizaciya-stabilnojj-otpravki-dannykh.html)

Dtri 12.10.2015 10:08

jquery ajax организация стабильной отправки данных
 
Здравствуйте. Есть задача. наверное она тривиальная. но почему-то не нашёл решения. помогите советом.

Есть сервер и не стабильный вайфай для связи с этим сервером.


Есть интерфейс написанный на html+js (jquery).

Обмен данными происходит примерно таким образом.


$.ajax ({
 url: '/server',
 type: 'post'
 data: {"foo": "bar"}
 success: function (d) {
      $('.some-block').html(d)
}
})



после получения сервером. данные обрабатываются какой-то моделью и отправляются в базу.

теперь задача и она же проблема.

как вывести сообщение пользователю если до сервера дошли битые данные.
или как заделать цикличность. Например сделать 5 попыток и после 5 неудачных вывести сообщение пользователю об ошибке


заранее спасибо за внимание

laimas 12.10.2015 12:51

При отсутствии ответа сервера клиент (ajax) сам прервет соединение и сообщит. А целостность данных, эта задача возлагается полностью на сервер, и если такое произошло, и знать причину и вероятность этого, то можно на сервере запомнить это, следующий же запрос его будет контрольный.

Dtri 12.10.2015 18:58

laimas,
тоесть вы предлагаете проводить по завершению первого ажакс запроса, следом второй - контрольный, который будет проверять есть ли в базе то что послали?

laimas 12.10.2015 19:09

Не совсем так, контрольный, в кавычках, это уж если вы решили опрашивать циклично. На самом же деле, если Ajax завершился неудачей, то клиент и так уже будет знать, что запрос надо повторить, а если сервер вернул ОК, значит все нормально.
Другое дело, что, допустим, связь прервалась как раз в момент когда сервер готов был вернуть ОК, вроде бы все и в порядке, но клиент не знает об этом, поэтому прежде чем слать много данных вновь, лучше проверить стоит ли это делать.

рони 12.10.2015 19:13

:write: на всякий случай
http://api.jquery.com/ajaxError/

Dtri 13.10.2015 14:41

всем спасибо. понял. попробую. отпишусь как проверю


Часовой пояс GMT +3, время: 23:38.