jQuery使用abort方法停止ajax请求

有一个很实用的插件: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

相关文章
相关标签/搜索