Mam funkcję, która uruchamia wywołanie ajax na zmianę danych wejściowych.Przerwij poprzednią prośbę ajaxową na nową prośbę
Ale jest szansa, że funkcja zostanie uruchomiona ponownie przed zakończeniem poprzedniego połączenia ajax.
Moje pytanie brzmi: jak przerwać poprzednie połączenie ajax przed rozpoczęciem nowego? Bez użycia zmiennej globalnej. (Patrz odpowiedź na podobne pytanie here)
jsfiddle mojego aktualnego kodu:
javascript:
var filterCandidates = function(form){
//Previous request needs to be aborted.
var request = $.ajax({
type: 'POST',
url: '/echo/json/',
data: {
json: JSON.stringify({
count: 1
})
},
success: function(data){
if(typeof data !== 'undefined'){
jQuery('.count').text(data.count)
console.log(data.count);
}
}
});
};
if(jQuery('#search').length > 0){
var form = jQuery('#search');
jQuery(form).find(':input').change(function() {
filterCandidates(form);
});
filterCandidates(form);
}
HTML:
<form id="search" name="search">
<input name="test" type="text" />
<input name="testtwo" type="text" />
</form>
<span class="count"></span>
Tutaj jest lepszym rozwiązaniem jest tutaj lepszym http rozwiązanie: //www.thecave.info/how-to-abort-a-previous-ajax-request-in-jquery/ – semira