Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

How to Abort a AJAX Call Before Calling the Same Again

4.63/5 (6 votes)
8 Apr 2013CPOL 38.3K  
Aborting an fired Ajax call before firing the same again

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

HTML
<input id="searchbox" name="searchbox" type="text" />
<div id="data"></div>
JavaScript
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();
            }
        });
    });});

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)