Ajax实现excel导出
$.ajax({type:"post",url:'statistics/queryAction!statLog.action',dataType:"json",data:...
$.ajax({
type : "post",
url : 'statistics/queryAction!statLog.action',
dataType : "json",
data : "updateId=" + taskId ,
async : true,
success : function(data) {
$(obj).attr({disabled:"disabled"});
$(obj).text("执行中");
},
error : function() {
}
});
应用技术:struts2, ajax
实现功能:页面点击实现异步导出excel功能(浏览器提示打开保存的方式),目的是如果导出的excel文档过大,当点击其他页面时导出的过程不会中断。
我的问题是:ajax调用后台action执行导出excel动作,如果action没有执行完也就是说尚未返回success到ajax的情况下,我点击跳转到其他页面,那么这导出会不会断掉,是怎么个流转的原理,望老手指点~ 展开
type : "post",
url : 'statistics/queryAction!statLog.action',
dataType : "json",
data : "updateId=" + taskId ,
async : true,
success : function(data) {
$(obj).attr({disabled:"disabled"});
$(obj).text("执行中");
},
error : function() {
}
});
应用技术:struts2, ajax
实现功能:页面点击实现异步导出excel功能(浏览器提示打开保存的方式),目的是如果导出的excel文档过大,当点击其他页面时导出的过程不会中断。
我的问题是:ajax调用后台action执行导出excel动作,如果action没有执行完也就是说尚未返回success到ajax的情况下,我点击跳转到其他页面,那么这导出会不会断掉,是怎么个流转的原理,望老手指点~ 展开
3个回答
展开全部
文件导出不是这么玩的,form表单参数用request对象传参数,respone对象下载文件。你前端创建一个form表单,把参数控件设置好,然后function可以提交form。这样你会看到下载很简单。但是你用ajax下载文件就只能用get方法了,参数不能用body,传的时候莫名其妙报错,其实官方觉得ajax这样做不安全。对文件的管理,它是整个文件对象传过来的,并不是body请求过来一个json。我们尝试创建一个标签,让form下载地址换换成blob然后模拟下载,这是get方法,post不过去body的。
这是前端
后端拼接条件,查询数据库,导出数据到EXCEL
挤在一起,我这人比较懒,可以写美观一点,这时候,我们加载复杂条件,模糊查询数据库
实现导出筛选数据到EXCEL文件并下载
展开全部
会的。当你发出请求本质就是建立了和服务器的socket通信。
你把请求发出去,action还没有返回数据,你又请求了另外的页面。这个会将之前的连接关闭,那么action无法返回数据到页面。
如果你想确定发送数据出去,action返回,前台选择保存或者取消。
那么最好在点击了下载文件功能后,将网页设置遮罩层,提示文件正在请求中。这样用户就无法点击其他操作。当action返回数据后,再将网页遮罩层取消即可!
你把请求发出去,action还没有返回数据,你又请求了另外的页面。这个会将之前的连接关闭,那么action无法返回数据到页面。
如果你想确定发送数据出去,action返回,前台选择保存或者取消。
那么最好在点击了下载文件功能后,将网页设置遮罩层,提示文件正在请求中。这样用户就无法点击其他操作。当action返回数据后,再将网页遮罩层取消即可!
追问
我是要用ajax发请求到action实现异步的excel导出,就是这个功能而已,不需要action返回数据。你说的遮罩层我明白,可是现在需求是想执行导出过程中可以访问其他页面,我也只能想到ajax了。
那么按你的意思,这个功能难道就无法实现了么..
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会,java不是多线程的吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |