ajax请求遇到服务器重启或中断

常会有不断轮询发送ajax请求,处理一些业务的场景。

要考虑到:

1. 服务器重启,中断,恢复后仍然能恢复正常业务处理。

    服务器重启过程中,再次发送请求,请求状态将变为net::ERR_CONNECTION_REFUSED,ajax依然会执行到success逻辑层,拿到的响应是null。

    想当然的认为ajax会执行到error逻辑层是不正确的,因此写代码的时候要格外注意这一点。

 1 var progress_polling_ajax = function () {
 2     var time_interval = 3000;
 3 
 4     jQuery.ajax({
 5         url: "/system/ajax_get_progress/",
 6         method: "POST"
 7         dataType: "json",
 8         success: function (data) {
 9             try {
10                 if (data) {
11                     //业务处理
12                 } else {
13                     setTimeout(progress_polling_ajax, time_interval);
14                 }
15 
16             } catch (e) {
17                 setTimeout(progress_polling_ajax, time_interval);
18             }
19         },
20         error: {
21             setTimeout(progress_polling_ajax, time_interval);
22         }
23 
24     });
25 
26 };

 

posted @ 2014-11-18 11:16  周文洪  阅读(3180)  评论(0编辑  收藏  举报