excel导出完成关闭loading样式

起因

之前的项目用的是bootstrap的tableExport导出,数据量小还可以,数据稍微一多导出时浏览器就会崩溃。于是换成后台导出,然后就遇到了如何关闭转圈加载样式(之前前端导出时只要在导出方法完成时关闭即可)这个问题。
问题的要点就是后台导出怎么来通知前台导出(下载)已经完成。

过程

网上搜索‘excel导出完成样式关闭’相关关键词结果较少,改成搜索‘excel导出进度条’相关关键词内容较多,网上分享的方法其中有一个利用到session做标志。然后想说用cookie做会不会好一点,因为我只是要一个弹出下载框后通知前台关闭样式的标志,不做进度条,而且这个标志也只是为了让页面好看一点没有太大的安全性问题。

解决思路

思路很简单,就是在后台加载好excel文件后在cookie中写入一个标志位,前端在请求后台时开启一个定时函数循环检查cookie中的标志位。

**

P.S. 敲代码过程中还遇到了一个很蠢的问题,就是setTimeout(check(),500)和setTimeout(“check()”,500)的区别(前端菜鸟),一开始用setTimeout(check(),500)在console中看到函数没有按照定时间隔失效,看了下网上setTimeout参数中有的带双引号有的不带就顺着查了一下区别,发现了问题原因。
check(){console.log(1)}
**

代码

	function exporDatat() {
		// 开启 loading 效果
		$.bootstrapLoading.start({ loadingTips: "正在导出,请不要关闭窗口" });
		//请求后台获取下载地址
		var url=downloadPath;
		location.href = url;
		//检测cookie关闭样式
		check();
	}
  
	//检测方法
	function check(){
		if(getCookie("loadingFlag")){
			//关闭加载样式
		   	$.bootstrapLoading.end();
			//设置cookie立即过期清除标志cookie
		   	var date = new Date();
		   	document.cookie = "loadingFlag=''; expires="+date.toGMTString()+" ; path=/";
	    }else{
	    	//500ms检测一次,根据实际情况修改
	  	  	setTimeout("check()",500);
	    }
    }
  
	//根据名称获取cookie,项目cookie数量多的话可以做优化
	function getCookie(name){
		var strcookie = document.cookie;//获取cookie字符串
		var arrcookie = strcookie.split("; ");//分割
		//遍历匹配
		for ( var i = 0; i < arrcookie.length; i++) {
			var arr = arrcookie[i].split("=");
			if (arr[0] == name){
				return arr[1];
			}
		}
		return "";
	}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vxe-table是一个基于vue的表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、模态窗口、自定义模板、灵活的配置项、丰富的扩展插件等... 设计理念: 面向现代浏览器,高效的简洁 API 设计 模块化表格、按需加载、插件化扩展 为单行编辑表格而设计,支持增删改查及更多扩展,强大的功能的同时兼具性能 功能: Basic table (基础表格) Grid (高级表格) Size (尺寸) Striped (斑马线条纹) Table with border (带边框) Cell style (单元格样式) Column resizable (列宽拖动) Maximum table height (最大高度) Resize height and width (响应式宽高) Fixed column (固定列) Grouping table head (表头分组) Highlight row and column (高亮行、列) Table sequence (序号) Radio (单选) Checkbox (多选) Sorting (排序) Filter (筛选) Rowspan and colspan (合并行或列) Footer summary (表尾合计) Import (导入) Export (导出) Print (打印) Show/Hide column (显示/隐藏列) Loading加载中) Formatted content (格式化内容) Custom template (自定义模板) Context menu(快捷菜单) Virtual Scroller(虚拟滚动) Expandable row (展开行) Pager(分页) Form(表单) Toolbar(工具栏) Tree table (树形表格) Editable CRUD(增删改查) Validate(数据校验) Data Proxy(数据代理) Keyboard navigation(键盘导航) Modal window(模态窗口) Charts(图表工具) 更新日志: v3.3.6 table 修复 getRadioReserveRecord、getCheckboxReserveRecords 方法错误获取数据问题 grid 修复数据代理删除行为存在新增数据的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值