有一个很实用的插件:Autocomplete,即可以实现像搜索引擎一样的关键字提示,提示的内容是用ajax请求后台的内容,这个插件有一个功能,是当用户在输入框按键比较快时,会自动终止之前发出的ajax请求,尽量减少后端的压力,这个是如何实现的呢?这个功能就需要使用ajax对象中的abort方法来实现了。具体代码如下:
function request (){
if(response) response.abort(); //终止之前所有的未结束的ajax请求,然后重新开始新的请求
response = $.ajax({
url : 'test.php',
type: 'post',
data : {test:'test'},
dataType : 'json',
success : function (o){
console.log('success');
},
error : function (){
console.log('error');
}
});
}
$('input').on('keyup',request); //绑定keyup事件
注意:使用这个response.abort()方法终止请求的时候,实际上会触发ajax的success方法,所以需要在success方法中添加判断response对象是否存在,存在才执行具体内容。
来源:oschina
链接:https://my.oschina.net/u/1417422/blog/617941