有一个很实用的插件:Autocomplete,便可以实现像搜索引擎同样的关键字提示,提示的内容是用ajax请求后台的内容,这个插件有一个功能,是当用户在输入框按键比较快时,会自动终止以前发出的ajax请求,尽可能减小后端的压力,这个是如何实现的呢?这个功能就须要使用ajax对象中的abort方法来实现了。具体代码以下:php
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对象是否存在,存在才执行具体内容。 ajax