jq如何终止之前还在执行的接口请求

同一个速度比较慢的接口,遍历数据库完成后会弹窗出来,可能出现这种情况:
还未执行完成,下一次请求就发起了,过了一会,会弹窗两次。
怎么在第二次发起请求时,终止前面还在队列中的请求?

阅读 4.4k
4 个回答

如果另一个请求还未返回,可以用xhr对象的abort()方法;如果请求已经返回,回调函数还在队列中未执行,则在回调中判断是否仍要弹窗

1.设置个变量,谁先好设置一个那个变量
2.使用ajax的同步模式

abort(); 

但是不怎么好用。我用的方法是,发送请求的时候定义一个当前的时间戳,一个存在全局,一个存在闭包里。只有当闭包里的和全局里的一样,才执行success的代码

可以回调后判断下有没有正在进行中还没回调的同类请求,有的话不给弹框反馈。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题