为了账号安全,请及时绑定邮箱和手机立即绑定

有大佬遇到过这个问题吗:前端发送异步请求后,后端处理时间长,前端在后端处理完成后才能在页面上显示处理完成,有什么比较好的方法吗?求解答!

有大佬遇到过这个问题吗:前端发送异步请求后,后端处理时间长,前端在后端处理完成后才能在页面上显示处理完成,有什么比较好的方法吗?求解答!

慕码人8056858 2019-06-20 10:55:21
场景:1、前端发送处理请求后,后端开始处理2、后端处理时间较长,估计有2、3分钟(时间每次都不太确定)才能处理完3、后端处理完后,前端在页面上显示处理完成现在想到的办法:在发送处理请求后,用setInterval每隔10s发送一次,询问是否完成但是总觉得这种方法会浪费带宽?大神们,请问还有别的方法吗???###问题描述
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

这类问题其实本质问题是:后端如何给前端主动推送消息?答案是:只使用http无法推送。就只能要么定时发送请求,要么建立websocket链接定时发送请求问服务端,是否处理完成建立websocket,这样服务端也就可以主动给客户端推送消息了。但是事实上,因为各方面网络环境的原因,websocket的连接可能会断开。造成断开的原因很多(比如手机的客户端,信号不好;比如突然断网;比如服务器波动;比如服务器可能带宽一时不足等等),都有可能断开所以用websocket也必须进行一个较长时间的定时发送http请求以避免断开的情况。所以还是定时发送http请求最好。当然可以做一些优化,比如最少需要2分钟才能完成,那么询问的http请求可以在2分钟之后再发送。
                            
查看完整回答
反对 回复 2019-06-20
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

这类后台无法立即处理的请求,可以用定时查询或者websocket,总的分为2步。1、前端发起请求,后台响应,前端界面需要有提交成功正在处理的提示。2、后台处理完毕,向前端发送消息,前端界面显示操作完成的提示。
                            
查看完整回答
反对 回复 2019-06-20
  • 2 回答
  • 0 关注
  • 1297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信