有时候网络不好的时候. 一个页面的请求往往需要很长时间才响应 . 这时候用户已经跳转到另一个页面.. 此时之前那个响应成功. 执行回调函数...
这时候会给用户造成误解.... 以为是当前此时此刻这个页面给出的一些信息... 比如:报错
有时候网络不好的时候. 一个页面的请求往往需要很长时间才响应 . 这时候用户已经跳转到另一个页面.. 此时之前那个响应成功. 执行回调函数...
这时候会给用户造成误解.... 以为是当前此时此刻这个页面给出的一些信息... 比如:报错
有个思路,可以参考。
如果是原生 XmlHttpRequest 对象,可以直接调用 abort()
方法终止ajax。
所以,你可以在离开路由的时候,调用 xhr 的 abort
然后ajax,回掉里面处理下。
xhr.onreadystatechange = function(){
if(request.readyState !==4) continue;// 忽略未完成的请求
if(request.status === 200){} // 成功
}
9 回答1.6k 阅读✓ 已解决
6 回答935 阅读
3 回答1.3k 阅读✓ 已解决
4 回答944 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答848 阅读
3 回答1.3k 阅读✓ 已解决
这样的话,建议在ajax的回调函数中写上一些判断就好,比如:可以判断当前路由是都是进行ajax请求时的路由,如果
是,那么执行回调,如果不是就return出来就好了。