You should do something like this:
var lastXhr; $( "#myAutocomplete" ).autocomplete({ source: function( request, response ) { if (lastXhr) lastXhr.abort(); lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) { if ( xhr === lastXhr ) { response( data ); } }); } });
lastXhr var holds the most recent xhr request. If there is one set and the source function is called, it aborts the lastXhr request and creates a new one. When an ajax request is returned, if you make sure it matches lastXhr, if not, it does not call the response() function.
PetersenDidIt
source share