Introduction
I want to show auto search result just below the search box. After each character write, I want to do an Ajax call and get the data from the database. In this case, if someone wrote 4 characters, then 4 Ajax calls will be fired and from all these Ajax calls, the last response will be taken as a search result. Sometimes, it may not be correct because at times, the earlier fired Ajax call can give response after the later fired Ajax call, in this case we may have inconsistent data. To solve this issue, we have to abort the previously fired Ajax calls.
The sample code given below solves the problem.
Using the Code Snippet
<input id="searchbox" name="searchbox" type="text" />
<div id="data"></div>
jQuery(document).ready(function(){
var currentRequest = null;
jQuery('#searchbox').keyup(function() {
var text = jQuery(this).val();
currentRequest = jQuery.ajax({
type: 'POST',
data: 'search_text=' + text,
url: 'AJAX_URL',
beforeSend : function() {
if(currentRequest != null) {
currentRequest.abort();
}
},
success: function(data) {
jQuery('#data').html(data).show();
}
});
});});