使用spring的excel视图来完成excel的导出功能时,最大的问题就是无法获取服务器的进度,特备是大数据量生成时时间特别长,用户会任务是服务器的问题。关闭了页面,然后最后即使生成了文件也无法下载。
为了解决这个问题,冥思苦想采用了变通的方式来实现,前台分两部分来完成导出功能。
a、发送一个请求出发excel的controller,等待响应。
b、前台页面设置一个定时器来完成周期性像服务器查询进度。
服务器部分:
a、导出部分的代码中增加一个日志部分的输出,这个日志是程序定义的,在导出到某个阶段时写出到数据库。
b、定时请求的这个,每次查新日志表中的最新记录进行反馈。并发反馈过的记录给打上mark。下载再次请求时只查询最新的,没有mark的记录反馈给前台。
变通后即实现了进程的调度。
要更友好,就是配合进度条和状态进行显示。