高频请求下取消前一次请求
先讲下需求,在一个 input 框里我们每输入东西都去后端检索,正常的做法是把请求包在防抖里,来减少请求,但这样还是很有概率导致用户输入的东西无效,其次是很有可能我上一次的请求会在下一次请求之后才返回,如果不加顺序锁会导致数据展示错乱。看到百度搜索框的响应后发现他们是下一次请求的时候把之前的请求直接 canceled掉,这样做的好处是用户方面不会有任何感官,而且展示的数据不会错乱。 XMLHttpRequest 在原生 ajax 中提供了一个abort()方法来取消请求 var xhr = new XMLHttpRequest(), method = "GET", url = ""; xhr.open(method,url,true); xhr.send(); // 在取消的时候调用这条 即可取消请求 xhr.abort(); jQuery jQuery 的 ajax 也与原生基本无出入,方法更加简单 var xhr; var ajax…