首页 » 前端技术 » 设置ajax响应时间,避免浏览器无反应

设置ajax响应时间,避免浏览器无反应

高蒙 2016/04/24 21:33 4.3k浏览 0评论 jQuery/js


在项目中实现点击全部导出数据,通过ajax实现的时候,先将数据库中相应的数据全部的转成excel的文件格式,提供给用户下载。
在实际的操作中,由于数据量实在是大。ajax请求的反应时间太长,导致浏览器很久无反应的情况。
处理这样的情况有下面几种方法:

第一:就是设置ajax的请求时间。

$.ajax({
    type:"post",
    timeout:10000,
    url:"",
    data:{},
    dataType:'json',
    success:function(data){
 if(data.msg == 1){
     if(confirm('立刻前往下载')){
  window.location.href=data.url;
     }else{
  return false;
     }
 }else{
     alert('导出超时');
     window.location.reload();
 }
    }

    //请求完成后最终执行参数
    complete : function(XMLHttpRequest,status){
        //超时,status还有success,error等值的情况
    if(status=='timeout'){
       ajaxTimeOut.abort(); //取消请求
       alert("超时");

    }
  }
});

经测试:服务器处理方法中线程延时,结果证明,timeout无效,客户端等待响应,status返回sucess。说明, timeout含义是设置请求超时时间,不涉及服务器响应时间!

第二:就是在返回数据的时候,尽量的返回数据的字节不要太大,可以分开的传输。




相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    481

    标签

    38

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。