0

(Ajax 経由で) 2 つのスクリプトを同時にクエリする必要があります。

1つは本当に高速で、htmlを表示するだけで、2つ目はWebServiceを使用してクエリを実行していることは確かです。

クイック リクエストは、常に最初のリクエストの後に送信されます。しかし、私のすべての試みでは、速い/速いものは、遅いものの前に完了することはありません.

最初の長い ajax リクエストを呼び出すために使用するコード:

$.ajax({
        type: "POST",
        url: '/fr/ajax_flight_get_other_oneway',
        cache: false,
        dataType: 'json',
        success: function(data) {
           // some treatment
        }

2 つ目の高速な ajax リクエストのコード:

$.ajax({
        type: "POST",
        url: '/fr/load_back_forflight?id=SN4422_23',
        cache: false,
        data: "comps="+compSelectedCodes+"&escale="+escale,
        dataType: 'json',
        success: function(data) {
           // some treatment
        }

変更する必要があるのは Apache のものですか、それとも jQuery のものですか?

4

4 に答える 4

1

問題の解決策を見つけました。それはセッションにリンクされていました。

セッションはファイルシステムに基づいていました。したがって、最初の (長いクエリ) はセッション ファイルをロックし、2 番目のクエリは長いクエリが終了するまで待機することを余儀なくされます。

DBでセッションを使用することで、問題を解決しました。

ご協力いただきありがとうございます

于 2012-05-22T14:51:48.273 に答える
0

遅いものを速いものの成功コールバックに入れます。これにより、2番目の要求を開始する前に、高速要求が最初に終了することが保証されます。

于 2012-04-17T13:56:33.027 に答える
0

これを試して:

$.ajax({
    type: "POST",
    url: '/fr/ajax_flight_get_other_oneway',
    cache: false,
    dataType: 'json',
    success: function(data) {
        // some treatment
        //The code for the second faster ajax request:
        $.ajax({
            type: "POST",
            url: '/fr/load_back_forflight?id=SN4422_23',
            cache: false,
            data: "comps=" + compSelectedCodes + "&escale=" + escale,
            dataType: 'json',
            success: function(data) {
                // some treatment
            }
        });
    }
});​
于 2012-04-17T15:36:09.303 に答える
0

ブラウザーが (HTTP ヘッダー キープアライブを使用して) 両方に同じ HTTP 接続を使用することを決定したため、キューに入れられたように見える可能性があります。これは jQuery のことではありません。ブラウザーが選択できることです。

ブラウザーの HTTP ネットワーク トラフィック デバッガーを使用して、これに該当するかどうかを確認してください。

そうでない場合、Web サーバーはクライアントごとに 1 つの接続のみを許可し、それらをキューに入れている可能性があります。これを参照してください:

同じ IP アドレスから複数の同時接続を許可するように Apache2 を構成するにはどうすればよいですか?

于 2012-04-17T14:04:03.717 に答える