0

一度に 1000 アイテムのクエリを処理および更新しようとしています。私は設定キャッシュを false に設定し、リクエスト間で一時停止するように setTimeout を試しました。各リクエストには 5 ~ 6 秒かかり、プロセスがタイムアウトすることはありませんが、4 ~ 5 回のリクエストの後、サーバーの実行制限に達します。

問題は、更新クエリで PHP オブジェクトを使用する必要があることです。すべてのリクエストに時間がかかるように見えるため、オブジェクトが PHP でループしているようです

とにかくこれを止める方法はありますか?

ここにJavaScriptコードがあります

function processIndex() {
    $.ajax({
        url: responder,
        dataType: "json",
        data: data,
        cache: false,
        async: false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
        //  alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText + ' LIMIT ' + limitFrom + ', ' + limitTo);
            limitFrom = limitTo;
            limitTo  += 1000;
            processIndex('indexPrices');
        },
        success: function(data) {
                    limitFrom = limitTo;
                    limitTo  += 1000;
                    setTimeout(function() {
                        processIndex();
                    }, 1000);
                }
            });
        }
    });
}
4

1 に答える 1

0

http://www.protofunc.com/scripts/jquery/ajaxManager/を使用でき ます

また

https://gist.github.com/2470554

ajaxリクエストをキューに入れるため。

これを行う別の方法は、少数のレコード(たとえば、一度に50レコード)を送信し、サーバー側のコードでそれらをループすることです。

これら2つのソリューションを組み合わせて、最適な結果を得ることができます

于 2012-06-15T14:24:51.260 に答える