前端接口请求超时

发布于 2022-09-30 23:07:01 字数 105 浏览 68 评论 0

最近开发中遇到接口超时问题,
背景:数据计算量过大,接口响应时间过长时,网关会报超时,页面就挂了
想请教下各位大神前端有什么比较好的方案可以进行优化吗(比如超时给个提示,不让页面挂掉)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱已欠费 2022-10-07 23:07:01

你用前后端不分离的表单形式那就没办法,直接就 502/504,即便你能自定义错误页面也是很不友好的。就得改造成 AJAX,这样你才能在 JS 里捕捉到错误好给个提示啥的。

不建议采用增大网关的超时等待时间这种粗暴的做法,因为尽快挂掉也是为了给后来的请求腾地方,要不然全都堆积在那儿了。


如果你的业务确实就是有经常性的大量计算,最好改造成提交和查询两步进行,提交数据后直接返回一个任务 ID 之类的,后台异步地去执行,别让前端等。此时前端显示个 loading 之类的,等后台处理好以后通过某种方式告知前端(轮询也好、WebSocket 也罢)再获取执行结果。

可以参考微信商户或者支付宝商户导出订单的那种业务逻辑,你提交查询条件后就立刻返回,等它生成好了你再去下载。

︶葆Ⅱㄣ 2022-10-07 23:07:01

服务端渲染啊?超时给个错误页面

如果是普通的ajax那就是代码不行

┾廆蒐ゝ 2022-10-07 23:07:01

后台时间太久,对前端用户非常不友好。

全局设置超时时间(单位ms)

axios.defaults.timeout = 2500;    //2.5s

单独设置超时时间(单位ms)

axios.get('/longRequest', {
  timeout: 5000
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文