前端传大量数据到后台进行导出

当前端需要将大量数据导出为Excel时,由于GET请求限制,不能使用超链接方式。而AJAX因不支持流式导出,也无法完成此任务。本文提出一种解决方案,利用form表单结合iframe,将数据以JSON字符串形式提交到后台(Java)进行处理。HTML代码创建表单,JS代码将数据转换为字符串,Java代码接收并解析为Map对象,实现数据导出。
摘要由CSDN通过智能技术生成

各位小伙伴有没有遇到过这种需求,前端有大量的数据需要传到后台,在将这些数据导出成excel。

常用的导出都是前端通过超链接的请求方式,但因为超链接是get请求,无法传大量的数据。如果你想到了用ajax,那么很抱歉,因为ajax不支持流形式的导出,所以是无法导出excel的。

下面写出我的解决方案,通过form表单的形式进行导出。

HTML代码:通过提交表单,将数据传到后台,注意要使用iframe,为了让页面不会有跳动的效果。

<form  action=""  target="formTarget" method="post" id="formsubmit" style="display: none;">
    <input type="hidden" id="test" value="test" name="test">
</form>

<iframe id="formTarget" name="formTarget" frameborder="0" style="display: none;"></iframe>

 

JS代码:

this.test是要传到后台的数据,这里要用JSON.stringify将数据转成字符串的形式。

document.getElementById('
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java导出大量数据到Excel时,可能会因为数据量过大导致前端请求超时。这是由于以下几个原因引起的: 1. 数据量大:导出大量数据需要较长的处理时间和较高的系统资源消耗。如果数据量远远超过前端请求能承受的极限,前端请求时间可能超出设置的时间限制,从而导致超时。 2. 网络输限制:在数据量较大的情况下,数据输时间也会相应增加。如果网络输速度慢或网络连接不稳定,请求可能会在输过程中超时。 为了解决这个问题,可以考虑以下几个方案: 1. 分批导出:将大量数据分成小批次进行导出。可以在前端通过多次请求来获取分批次的数据,然后在后台进行数据导出。这样可以避免单次请求时间过长导致的超时问题。 2. 后台异步导出:当前端发起数据导出请求时,后台可以先返回一个任务标识,告知前端任务已经在后台进行处理。后台数据导出的过程放在一个异步任务中执行,不会阻塞前端请求。前端可以轮询任务状态,直到任务完成并提供下载链接。 3. 压缩文件导出:将导出数据以压缩文件的形式返回给前端,可以减小数据输量,加快数据输速度。前端可以在接收到文件后再进行解压和处理。 4. 前端分页获取:前端可以通过分页的方式获取数据,每次请求只获取一页的数据。这样可以减少单次请求的数据量,降低请求超时的风险。 通过上述方案,可以有效地解决Java导出Excel数据量大导致前端请求超时的问题,提高系统的可用性和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值