一.问题场景 最近在做数据统计功能,需求是导出大数据量的excel,时间间隔较长,大概需要十秒左右,点击导出后,页面没有做任何处理,用户也不知道是否正在导出:如果没有做交互上的限制,用户可以一直点击导出按钮,这样势必会造成服务器瘫痪. 二.尝试过程 花了一天尝试了两种方案: 2.1 纯前端添加遮罩 单纯的前端是无法监听文件是否下载完成的,主要试了两种方案: 1.由于导出是用form表单提交的,并将form的target设置到一个隐藏iframe来达到不刷新页面而导出.本来想利用隐藏iframe的