ajax同步请求 超时时间问题

前端之家收集整理的这篇文章主要介绍了ajax同步请求 超时时间问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

最后两种解决办法:

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

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

猜你在找的Ajax相关文章