Здравствуйте!
Я в js не особо разбираюсь...
Написал код, в котором предыдущие ajax запросы отменяются.
Работает относительно, отменяет запросы (судя по логам снифера), но если "долбить" по клаве в инпуте, то отменяются все запросы включая последнего.
Почему так происходит ?
Как можно выйти из подобной ситуации ?
$(document).ready(function () {
$("#search_group").keyup(function (e) {
var val=$(this).val();
if(val!=''){
groups_search(val,function(o){});
}
});
});
function stop_ajax(ajax){
if(ajax){
ajax.abort();
}
}
var groups_search=function(name,usefunc){
var oldAjax=null;
this.search=function(){
stop_ajax(this.oldAjax);
this.oldAjax=$.ajax({
type: 'POST',
url: '/groups/search/',
data: {nameSearch: name},
dataType: 'json',
success: function (data) {
var st = data && data != '' ? 'success' : 'void';
usefunc({'status': st, 'result': data});
},
error: function (event, request, settings, error) {
usefunc({'status': 'error', 'result': null});
}
});
}
this.search();
}