ajax同步请求 超时时间问题

最近做到一个功能,从别的连接跳转登录到我们系统后台,登录后会查询一些数据。一开始登录用的异步调用,领导看日志发现还没登录就调了好几个查询接口,要改。我想简单点就改成同步不就行了,然后上同步,恩,好多了,登录不成功就不会调查接口了。接下来问题又来了,怎么每次登录失败都要这么久才能看到结果,4.2min才看到登录失败结果,不能忍。回去看代码,timeout也加了啊,10000,也才10s,怎么就会4.2min呢,赶紧大百度,还真有人说这个问题,Stack Overflow有人问到这个问题,ajax同步请求会阻塞浏览器线程,浏览器本身xhr对象是没有timeout的,jquery自己在xhr对象的基础上封装了timeout,所以能用,但也仅限在异步情况下。同步的时候就不行了,浏览器线程被阻塞,setTimeout不能用了。

最后两种解决办法:

一:服务器设置超时时间,超时后给个错误码

二:浏览器端还是用异步请求(超时时间自己控制),自己控制异步流程,避免无效请求(调整代码逻辑)

转载于:https://my.oschina.net/yimozhen/blog/756186

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值