我能想到的一个改造点是,参考解决异步传染的思路,你后端放在线程里正常执行,提供一个状态数据,前端写个循环或者说递归,访问如果后端没处理完报错,处理异常部分就是隔几秒后在访问,数据展示的地方先给个处理中的样式,对于用户来讲就不阻塞了
纯后端的问题,光显示页面没数据是无意义的,建议后端代码重构优化吧
并不觉得这个需要前端去处理,如果需要前端处理的话那就只能前端缓存一部分数据了
但是这样来说对前端、后端的压力都会增大
前端可能数据过多还可能被浏览器给干死
豆包的回答:
优先选长轮询:如果想最小改动(接近原轮询逻辑),仅优化请求次数,长轮询是最优解,实现简单且体验更好。
次选 SSE:如果想彻底抛弃「轮询」逻辑,用服务器主动推送,SSE 比 WebSocket 更易实现,适配你的「单向获取结果」场景。
WebSocket 兜底:如果对实时性要求极高(比如任务完成后需立即更新),可考虑 WebSocket,但需额外搭建 WebSocket 服务。
所有方案的核心逻辑都是「前端保持与服务器的连接,服务器在任务完成后主动响应 / 推送结果」,替代前端定时发起请求的轮询模式。
简单的话,就在前端制造假象。
http跳转改成页面内跳转展示新内容,也就是不终止向服务器请求,
用进度条显示加载进度不占用用户视野,添加鼠标浮动显示详情
还是优化后端吧,我建议。
感觉还是得优化一下后端,查询好几分钟,前端感觉不需要怎么改,或者就是响应动画,转圈圈的那种
php后端查询请求我用异步脚本执行了,这样就不会卡住了,前端也正常了。
– 青茶360 3天前