0

私はブラウザからサービスに大量のajax呼び出しを行っていますが、一度にすべてを送信しないことでサーバーに親切にしたいと思います。イベントのリストの起動をシリアル化して、最後のイベントが終了するまで次のイベントが起動しないようにするための標準パターンはありますか?

4

2 に答える 2

2

遅延オブジェクトを使用して非同期コールバックをチェーンするためのjQuery.whenSync()プラグインは、 AJAX呼び出しをキューに入れるのに役立つと思います。

于 2012-10-11T00:43:24.733 に答える
0

私は今、私のアプリの1つでこれを行っています。基本的に、すべてのajax呼び出しパラメーターを格納する配列があります。コールバックで、それ以上なくなるまで次の増分を渡します。これが一般的な例です(もちろん、ajaxを使用することも、getを使用することもできます。これは、私が行う方法です。

var params = [
{url : 'someurl', data : 'somedata', callback : doSomething},
{url : 'anotherurl', data : 'moredata'}
],
process = function(i) {

    if (i < params.length) {  

        var item = params[i];     

        // Navigate to first view trainee screen
        $.post(
            item.url,
            item.data,
            function(data) {
                // Could test for function, etc but this is how I do it
                try {
                     item.callback(data);
                } catch (e) {}

                process(++i);
            }
         );

    }
};


process(0);
于 2012-10-11T00:21:52.413 に答える