防止AJAX调用超时

时间:2017-04-12 22:56:46

标签: jquery asp.net ajax asp.net-web-api

我的一个网站需要调用另一个网站的API。

我计划在页面进行AJAX调用时显示“等待”弹出窗口,以指示服务器端代码进行API调用。

但是有可能需要一段时间。我正在寻找有关如何防止AJAX调用超时的建议。

当我谷歌这个问题时,我读过的大部分文章建议一次只发送一些项目。但就我而言,这一切都是在一个相当实质性的电话中完成的。

还有哪些其他选项可以阻止页面超时?

2 个答案:

答案 0 :(得分:1)

如果您无法在数据包等中实现加载,那么超时可能是您的最佳选择。

 $.ajax({
        dataType: "json",
        url: uriTrackers, // Your URL here.
        //data: data,  //we are not sending data, this is a different data to the one below
        timeout: 10000 //10 second timeout  or maybe 30 secs if debugging
    })
            .done(function (data) {
    // Anything you want to do on success here.
            })
        .fail(function (jqXHR, textStatus, err) {
            $('#TrackerInfo').text('Error: ' + err + uriTrackers);

        });

答案 1 :(得分:-1)

根据评论,我得到了你需要在某个特定的时间间隔内保持服务器ping。

setInterval(function() {
  $.ajax({url: "ping.txt", 
          success: function(result){
                       //Nothing to do, or your can check the content of your ping.txt
                    },
          error : function(){
                               //Code to show your wait popup
                 }
          });
}, 60000);

这将使您的连接保持活动,即您知道您是否已连接到服务器。

您需要在服务器上相应地放置ping.txt。