V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yestodayHadRain
V2EX  ›  问与答

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

  •  
  •   yestodayHadRain · 2019-06-18 11:29:22 +08:00 via iPhone · 1303 次点击
    这是一个创建于 1766 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是一个 excel 批量导出数据的功能,功能目前是这样实现的: 前端提交表单,后端接受请求参数处理完后请求转发到新的页面往新的页面推流。

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

    另外说一下,因为某些原因不能走异步的请求,只能走表单提交,后端也只能请求转发。这种情况,如果只动前端的话有什么好的办法吗?
    9 条回复    2019-06-18 15:23:20 +08:00
    yhxx
        1
    yhxx  
       2019-06-18 11:42:23 +08:00
    提交之后不是跳转到新页面去了吗
    都已经到了新页面,上一个页面的 loading 自然就没了啊,还需要手动取消的吗?
    Hilong
        2
    Hilong  
       2019-06-18 11:45:25 +08:00 via Android
    @yhxx 应该是打开新选项卡的意思吧
    fe619742721
        3
    fe619742721  
       2019-06-18 11:56:45 +08:00
    新页面 postMessage ?
    yestodayHadRain
        4
    yestodayHadRain  
    OP
       2019-06-18 12:12:41 +08:00 via iPhone
    @yhxx 不是,新页面是一个类似弹框的页面比较小,就是浏览器下载 excel 文件的一个窗口那种。所以原来页面的 loading 还是会看到
    yestodayHadRain
        5
    yestodayHadRain  
    OP
       2019-06-18 12:25:19 +08:00 via iPhone
    @fe619742721 可以说下细节吗?
    pandacat
        6
    pandacat  
       2019-06-18 12:30:30 +08:00 via Android
    postmessage 或者在 window 上监听 localstorage 的 storage 事件
    rootlinsen
        7
    rootlinsen  
       2019-06-18 12:34:48 +08:00 via iPhone
    页面加个 iframe,form 的 target 指向这个 iframe,action 指向后台的网址不变,不知能否下载,然后前端可以获取在 iframe 里面后台网址的页面内容,给这个后台页面某个 div 的内容写成成功或失败,前端根据这个 div 内容判断是否隐藏 loading
    TomVista
        8
    TomVista  
       2019-06-18 12:41:42 +08:00
    加载 loading
    settimeout(function(){
    等待后端
    关闭 loading
    settimeout(function(){
    显示新窗口
    },1)
    },1)
    yestodayHadRain
        9
    yestodayHadRain  
    OP
       2019-06-18 15:23:20 +08:00 via iPhone
    @pandacat jsp 页面可以用 postmessage 或者 localstorage 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5387 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.