前言:

在做excel文件下载时 发现数据导出请求方法中response.getOutputStream().close(); 会关闭请求 从而得不到返回的标识来关闭进度条,故结合网上资料做了如下功能。

功能概要:

前端先隐藏一个div来做是否关闭的标识,点击下载后开启进度条显示,之后进入后台 后台开始时先移除上次的关闭进度条标识(request.getSession().removeAttribute("endflag");) 在导出逻辑最后在session中存放标识标识该关闭进度条了 (request.getSession().setAttribute("endflag", "1");); 前端在写一个定时任务来请求session中查看结束标识,当确认是结束标识是结束定时任务并关闭进度条。

<a href="javascript:void(0)" onclick="showMenu()" class="easyui-linkbutton" iconCls="icon-downtemplate" plain="true">导出</a><div id="menuid" class="easyui-menu" style="width:120px;"><div data-options="iconCls:'icon-add'"><a href="javascript:void(0)" style="text-decoration:none;out-line: none;color:#3C3C3C;" onclick='exportInfo("EXCEL")'>导出为.EXCEL</a></div><div class="menu-sep"></div><div data-options="iconCls:'icon-add'"> <a href="javascript:void(0)" style="text-decoration:none;out-line: none;color:#3C3C3C;" onclick='exportInfo("TXT")'>导出为.TXT</a></div></div>
<input   type="hidden" id="divloads" name="bondname" value="0">
//导出菜单栏
function showMenu(){$('#menuid').menu('show', {//left: 200,top: 30});}
function exportInfo(name){$("#divloads").val("0")$.messager.progress({title: '提示',msg: '请稍候……',text: '债券信息下载中……'});if("EXCEL" === name){var url="";window.location.href=url; }else if("TXT" === name){var url="";window.location.href=url; } listenEnd();}
function listenEnd() {//定时监听       var loop = setInterval(function() {if ($("#divloads").val() == "1") {clearInterval(loop);//停止定时任务$.messager.progress('close');//进度条关闭} else {getendflag();}}, 1000);//单位毫秒  注意:如果导出页面很慢时,建议循环时间段稍长一点}function getendflag() {//请求session标记位    $.ajax({url: "",type : 'POST',dataType : 'json',data : { "content" : '123' },success : function(data) {if("1"==data.obj.flag){$("#divloads").val("1")}},error: function (XMLHttpRequest, textStatus, errorThrown) { // 设置表单提交出错alert("操作失败,请联系系统管理员或稍后再试!" + XMLHttpRequest.status + " " + XMLHttpRequest.readyState + " " + textStatus + " "+ errorThrown);},});}
//导出逻辑时将标识放入session中
request.getSession().removeAttribute("endflag");
request.getSession().setAttribute("endflag", "1");//获取结束标记
@RequestMapping("/getEndFlag")
@ResponseBody
public JSONObject getendflag(HttpServletRequest request, HttpServletResponse response) {JsonResult result = new JsonResult(Response.SUCCESS);JSONObject obj = new JSONObject();Object flag = request.getSession().getAttribute("endflag"); //获取结束标记*/obj.put("flag", flag);//返回状态值result.putObject(obj);return result.getResult();}

excel文件导出进度条的实现相关推荐

  1. 如何优雅地实现 Excel 文件导出功能?(阿里出品的 EasyExcel,安利一波)

    EasyExcel 前言 导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个导出,POI百万级大数据量EXCEL导出 采用了分批查询数据来避免内存溢出和使用SX ...

  2. Excel文件导出总结,包含大数据量的分批导出方式

    文章目录 需求背景 参考内容 导出方式 代码实现 Excel4J 普通导出 POI原生方式 普通导出 大数据量分批导出 依赖版本 实现思路 POI工具类 数据写入 调用测试 测试结果 一个小意外 Ea ...

  3. Visual C++利用互斥量同步线程实现文件读取进度条

    忘了原文的位置了. 一.前言 文件读取进度条的实现可以有很多种方法,常用的是在读取文件的过程中隔一定时间向对话框发送消息以控制进度条的位置,但是这种方法很难确定隔多少时问发送一个消息,因为文件的大小是 ...

  4. python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码

    本篇文章小编给大家分享一下Python实现给下载文件显示进度条和下载时间代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 该模块调用了三个库: 1. ...

  5. 异步上传文件显示进度条

    异步上传文件显示进度条 原文地址:异步上传文件显示进度条 问题 我们在写网站时难免会遇到需要上传文件的场景,但当上传大文件时比如5个G的文件直接用表单直接提交文件会出现页面卡顿.未响应等影响用户体验的 ...

  6. excel文件导出相应数据统计内容

    这次完成了一个以excel文件导出相应数据统计内容的功能,选取其中的一个放在下面: 1.首先在资源文件夹下创建一个excel的package,并创建一个xlsx文件 创建的时候要注意版本兼容问题,20 ...

  7. 前端js华为云obs上传下载文件与进度条的设置

    前端js华为云obs上传下载文件与进度条的设置 首先下载OBS BrowserJS SDK安装包 用git将代码拉到本地 git clone https://github.com/huaweiclou ...

  8. 泛微Excel文件导出

    泛微Excel文件导出 说明 前端代码 前端页面现有的id和name标准规格.配置页面: js代码: js代码注意点: 后端代码 jsp代码获取到数据并把数据以Excel形式表现出来 FL_Excel ...

  9. c#实现将Excel文件导出为csv和UTF8格式的txt文件

    工作中为了方便,经常使用excel表进行编辑,然后转换为程序用的csv和txt文件. 用c#做了个小工具,生成的exe文件放到需要转换的excel文件目录,可以实在自动读取该目录下的所有xlsx文件, ...

最新文章

  1. 聚合函数的计算机控件,使用Kendo UI MVC Grid包装器的聚合函数
  2. Augury翻译---io-demo
  3. windows如何生成ssh密钥
  4. 龙武2服务器在维护,龙武5.25更新维护时间_龙武5.5更新维护详情_牛游戏网
  5. 0320 关于构建之法前三章的读后感
  6. 【Java 数据结构】二叉树的遍历和基本操作
  7. Java泛型的个人理解
  8. checkbox全选
  9. javascript闭包新认识
  10. python判断用户名密码是否正确_Python账号密码登陆判断(三次机会)
  11. JAVA在线考试系统(本科毕业设计)
  12. 多级放大电路的耦合方式
  13. PAT乙级—1044 火星数字 (20分)
  14. html书写表单laber,day02_HTML表格列表表单
  15. svn: E170013: Unable to connect to a repository at URL ...
  16. 合成大西瓜html源码,合成大西瓜
  17. Python函数式编程15 python包
  18. c++ includes
  19. 防火墙虚拟化技术详解(上)
  20. 正则,把字符串/替换成-

热门文章

  1. layer常用功能-子页面关闭当前窗口-执行子页面方法-方法回调
  2. 小红书怎么涨粉最快?小红书涨粉最快的方法分享
  3. 石头、纸、剪刀小游戏(剪刀石头布?)
  4. echarts之legend-改变图例的图标为自定义图片
  5. scp 命令简明介绍
  6. uniapp小程序使用iconfont彩色图标
  7. 11.ARM架构的异常与中断
  8. 学习Maya学习MayaArnoldArnold
  9. 精灵随着鼠标的移动而移动
  10. 基于VB的Picture绘图