
在项目中,点击所有导出数据,通过ajax的实现,将数据库中的相应数据转换为excel文件格式,可以下载到用户。
实际上,数据量非常大。ajax请求的响应时间太长,导致浏览器长时间不响应。
有几种方法可以解决这个问题:
首先是设置ajax请求时间。
测试后:服务器处理方法中的线程延迟证明超时无效,客户端等待响应,状态返回成功。注意,超时意味着设置请求超时时间,而不是服务器响应时间!
第二种情况是,当您返回数据时,尝试返回不太大的数据的字节,这可以单独传输。
Ajax请求是限时的,所以错误警告被捕获并处理后,可以用来提升用户体验。
请求超时这个参数通常就保留其默认值,要不就通过jQuery.ajaxSetup来全局设定,很少为特定的请求重新设置timeout选项。
timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。 自己设置的 例如 timeout:1000
先拖一个AJAX框,在里面放上一个LABEL和一个TIMER,然后双击TIMER控件,添加如下代码:s+=1
if (s>=60) {s=0m+=1}
if (m>=60) {m=0h+=1}
Label1.Text=h.ToString()+":"+m.ToString()+":"+s.ToString()
然后在类的开始处声明如下变量
int s,m,h
TIMER的间隔设置为1000
PS:其实像计时这个东西用本地JS+DIV就可以实现,用AJAX会消耗服务器资源,没有必要
ajax请求时有个参数可以借鉴一下var ajaxTimeOut = $.ajax({
url:'', //请求的URL
timeout : 1000, //超时时间设置,单位毫秒
type : 'get', //请求方式,get或post
data :{}, //请求所传参数,json格式
dataType:'json',//返回的数据格式
success:function(data){ //请求成功的回调函数
alert("成功")
},
complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数
if(status=='timeout'){//超时,status还有success,error等值的情况
ajaxTimeOut.abort()//取消请求
alert("超时")
}
}
})
设置timeout的时间,通过检测complete时status的值判断请求是否超时,如果超时则取消请求
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)