Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测jQueryAjax请求是否已持续5秒以上_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何检测jQueryAjax请求是否已持续5秒以上

Javascript 如何检测jQueryAjax请求是否已持续5秒以上,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以判断jQueryAjax请求是否已经进行了超过一定长度的时间?如果请求已持续10秒,我想提示我的站点用户重新加载并重试,但我在文档中找不到任何内容来满足我的请求。设置超时,然后在ajax调用完成后取消它 var timer = setTimeout(function() { alert('Too long!'); }, 10000); $.getJSON(url, function() { clearTimeout(timer); }); 尝试设置timeout属性并获

是否可以判断jQueryAjax请求是否已经进行了超过一定长度的时间?如果请求已持续10秒,我想提示我的站点用户重新加载并重试,但我在文档中找不到任何内容来满足我的请求。

设置超时,然后在ajax调用完成后取消它

var timer = setTimeout(function() {
    alert('Too long!');
}, 10000);

$.getJSON(url, function() {
   clearTimeout(timer);
});

尝试设置timeout属性并获取错误处理程序参数。可能的值是

超时、错误、中止和解析器错误


因此,对于站点中的所有ajax请求。。。你应该这样做

$.ajaxSetup({
     beforeSend: function(jqXHR, settings){

          /* Generate a timer for the request */
          jqXHR.timer = setTimeout(function(){

               /* Ask the user to confirm */
               if(confirm(settings.url + ' is taking too long. Cancel request?')){
                   jqXHR.abort();
               }
          }, 10000);
     }
});

@Murali设置短超时将使整个请求失败。问题只是测量一个特定请求运行的时间,而不是取消它。您是想为一个ajax请求还是任何ajax请求执行此操作?所有ajax@Adriansalazar都必须确保它在页面加载时运行。像这个$function{/*在这里粘贴代码*/}
$.ajaxSetup({
     beforeSend: function(jqXHR, settings){

          /* Generate a timer for the request */
          jqXHR.timer = setTimeout(function(){

               /* Ask the user to confirm */
               if(confirm(settings.url + ' is taking too long. Cancel request?')){
                   jqXHR.abort();
               }
          }, 10000);
     }
});