前端的大佬们帮帮忙看个问题

2019-06-18 11:29:22 +08:00
 yestodayHadRain
就是一个 excel 批量导出数据的功能,功能目前是这样实现的: 前端提交表单,后端接受请求参数处理完后请求转发到新的页面往新的页面推流。

现在的问题是这样: 当数据量特别多的时候(上万条),前端等待的时间会比较久。这个时候想在表单提交之前加个 loading,但是表单提交后请求转发到新页面,loading 要怎么取消呢?

另外说一下,因为某些原因不能走异步的请求,只能走表单提交,后端也只能请求转发。这种情况,如果只动前端的话有什么好的办法吗?
1310 次点击
所在节点    问与答
9 条回复
yhxx
2019-06-18 11:42:23 +08:00
提交之后不是跳转到新页面去了吗
都已经到了新页面,上一个页面的 loading 自然就没了啊,还需要手动取消的吗?
Hilong
2019-06-18 11:45:25 +08:00
@yhxx 应该是打开新选项卡的意思吧
fe619742721
2019-06-18 11:56:45 +08:00
新页面 postMessage ?
yestodayHadRain
2019-06-18 12:12:41 +08:00
@yhxx 不是,新页面是一个类似弹框的页面比较小,就是浏览器下载 excel 文件的一个窗口那种。所以原来页面的 loading 还是会看到
yestodayHadRain
2019-06-18 12:25:19 +08:00
@fe619742721 可以说下细节吗?
pandacat
2019-06-18 12:30:30 +08:00
postmessage 或者在 window 上监听 localstorage 的 storage 事件
rootlinsen
2019-06-18 12:34:48 +08:00
页面加个 iframe,form 的 target 指向这个 iframe,action 指向后台的网址不变,不知能否下载,然后前端可以获取在 iframe 里面后台网址的页面内容,给这个后台页面某个 div 的内容写成成功或失败,前端根据这个 div 内容判断是否隐藏 loading
TomVista
2019-06-18 12:41:42 +08:00
加载 loading
settimeout(function(){
等待后端
关闭 loading
settimeout(function(){
显示新窗口
},1)
},1)
yestodayHadRain
2019-06-18 15:23:20 +08:00
@pandacat jsp 页面可以用 postmessage 或者 localstorage 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575025

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX