一个ajax请求

时间:2015-05-12 14:35:35

标签: javascript ajax

我正在尝试

$.ajax({
    // ...,
    async: false,
});

但它没有帮助。 有一种方式用旗帜(真/假),但也许有更美好的方式我该怎么办呢?

$(window).scroll(function() {
    if ($(window).scrollTop() + $(window).height() > $(document).height() - 220) {
        // ..
        sendRequest();
        // ..
    }
});

此函数发出AJAX请求。

1 个答案:

答案 0 :(得分:0)

在我们的应用程序中,我们将ajax请求添加到队列中,然后将它们弹出并逐个执行。这是一个非常简化的版本......

var queue = [];

function queueAdd( options ) {

    // ADD AJAX OPTIONS TO QUEUE ARRAY
    queue.push( options );

    // START QUEUE RUNNING
    queueRun();
}

function queueRun() {

    // QUEUE EMPTY OR REQUEST ALREADY ACTIVE
    if ( !queue.length || activeRequest ) return;

    // REMOVE FIRST REQUEST FROM QUEUE
    var request = queue.shift();

    // ATTACH COMPLETE CALLBACK
    request.complete = function( data ) {

        // ACTIVE REQUEST COMPLETED
        activeRequest = false;

        // START NEXT REQUEST IN QUEUE
        queueRun();

        // OPTIONALLY EXECUTE ORIGINAL COMPLETE CALLBACK
        request.complete( data );
    };

    // PREVENT CONCURRENT REQUESTS
    activeRequest = true;

    // EXECUTE AJAX REQUEST
    $.ajax( request );

}