jQuery使用abort方法中止ajax请求

人盡茶涼 提交于 2019-12-10 11:09:21

有一个很实用的插件: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对象是否存在,存在才执行具体内容。  

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!