在项目中,点击所有导出数据,通过ajax的实现,将数据库中的相应数据转换为excel文件格式,可以下载到用户。
实际上,数据量非常大。ajax请求的响应时间太长,导致浏览器长时间不响应。
有几种方法可以解决这个问题:
首先是设置ajax请求时间。
测试后:服务器处理方法中的线程延迟证明超时无效,客户端等待响应,状态返回成功。注意,超时意味着设置请求超时时间,而不是服务器响应时间!
第二种情况是,当您返回数据时,尝试返回不太大的数据的字节,这可以单独传输。
Ajax请求是限时的,所以错误警告被捕获并处理后,可以用来提升用户体验。
请求超时这个参数通常就保留其默认值,要不就通过jQuery.ajaxSetup来全局设定,很少为特定的请求重新设置timeout选项。
timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。 自己设置的 例如 timeout:1000
ajax请求时有个参数可以借鉴一下\x0d\x0avar ajaxTimeOut = $.ajax({\x0d\x0aurl:'', //请求的URL\x0d\x0atimeout : 1000, //超时时间设置,单位毫秒\x0d\x0atype : 'get', //请求方式,get或post\x0d\x0adata :{}, //请求所传参数,json格式\x0d\x0adataType:'json',//返回的数据格式\x0d\x0asuccess:function(data){ //请求成功的回调函数\x0d\x0aalert("成功")\x0d\x0a},\x0d\x0acomplete : function(XMLHttpRequest,status){ //请求完成后最终执行参数\x0d\x0aif(status=='timeout'){//超时,status还有success,error等值的情况\x0d\x0a\x0d\x0a ajaxTimeOut.abort()//取消请求\x0d\x0a alert("超时")\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a})\x0d\x0a\x0d\x0a设置timeout的时间,通过检测complete时status的值判断请求是否超时,如果超时则取消请求欢迎分享,转载请注明来源:内存溢出
评论列表(0条)