Get latest ajax request and abort others

后端 未结 3 1669
鱼传尺愫
鱼传尺愫 2021-01-04 21:50

I have been searching and this problem seems simple but cannot find answer. I have multiple request calling different url. But for each url, I only want the result once and

相关标签:
3条回答
  • 2021-01-04 22:02

    This explains how to use jQuery to do an ajax call and how to abort it. All you need to do is create an array that stores each request. You could then cancel the previous request while adding the new one.

    ajaxRequests = new Array();
    
    queueRequest = function() {
        if(ajaxRequests[ajaxRequests.length - 1]) {
            ajaxRequests[ajaxRequests.length - 1].abort();
        }
    
        ajaxRequests[ajaxRequests.length] = //Insert New jQuery AJAX call here.
    }
    
    0 讨论(0)
  • 2021-01-04 22:14

    Instead of using library, you can use Basic jquery Ajax method :

    beforeSend:{}

    For example:

    xhr = jQuery.ajax({
                url: /*Your URL*/
                type: "POST",
                data: {
                  //data
                },
                 /* if there is a previous ajax request, then we abort it and then set xhr to null */
                beforeSend : function()    {           
                    if(xhr != null) {
                        xhr.abort();
                    }
                },
    success:function(){}
    
    });
    
    0 讨论(0)
  • 2021-01-04 22:18

    Since we only want the result of the last request, this is very simple and works.

    var ajax = null;
    var getFoo = function() {
        if(ajax) ajax.abort();
        ajax= $.ajax({});
    };
    getFool();
    getFool();
    getFool();
    getFool();
    getFool();
    getFool();
    

    only the last request is executed.

    0 讨论(0)
提交回复
热议问题