
在项目中,点击所有导出数据,通过ajax的实现,将数据库中的相应数据转换为excel文件格式,可以下载到用户。
实际上,数据量非常大。ajax请求的响应时间太长,导致浏览器长时间不响应。
有几种方法可以解决这个问题:
首先是设置ajax请求时间。
测试后:服务器处理方法中的线程延迟证明超时无效,客户端等待响应,状态返回成功。注意,超时意味着设置请求超时时间,而不是服务器响应时间!
第二种情况是,当您返回数据时,尝试返回不太大的数据的字节,这可以单独传输。
Ajax请求是限时的,所以错误警告被捕获并处理后,可以用来提升用户体验。
请求超时这个参数通常就保留其默认值,要不就通过jQuery.ajaxSetup来全局设定,很少为特定的请求重新设置timeout选项。
timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。 自己设置的 例如 timeout:1000
ExtJS做Ajax请求的时候,默认的相应时间是30秒,如果后来数据查询时间超过30秒,ExtJS就会报错。这就需要修改ExtJS的超时时间:在js开始时后加
示例代码如下所示:
view sourceprint?
1.Ext.onReady(function() {
2.Ext.BLANK_IMAGE_URL = '../../common/ext3/resources/images/default/s.gif '
3.Ext.Ajax.timeout = 180000 //设置请求超时时间(单位毫秒)
4.})
1、定义一个时间延迟事件方法体。2、将ajax装入到函数体内,使用setTimeout延迟执行方法
<script>
function doajax(){//事先写好方法体,方便调用
$.ajax(
url:url,
data:datas,
successtion:function(result){
alert(result)
}
)
}
$(function(){
var timer
clearTimeout(timer)
setTimeout(doajax(), 1000)//过1s执行方法体。
})
</script>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)