1

5秒ごとにバックアップを実行する機能があります。時々、バックアップのターゲット サーバーに到達できず、タイムアウトに達するまで要求が停止します。これはユーザー インターフェイスに影響するため、この「バックアップ機能」を非同期 ajax リクエストとして実行します。

setInterval("doSync()", 5000 );

function doSync() {    
     $.ajax({
         url: "backup.php",
         async : true
     });
 };

これはバックグラウンドでかなりうまく動作します。ただし、ページのリロードが実行されるとすぐに、既に待機しているバックアップ関数呼び出しが完了します。したがって、最悪の場合、タイムアウトが 30 秒のバックアップがある場合、ユーザーは新しいページが読み込まれるまで 30 秒待たなければなりません。それはユーザーにとって受け入れられません。

これを回避するためにどの戦略を実装できますか? バックアップ要求を終了しても問題ありません...

4

2 に答える 2

0

その問題はブラウザに固有のものだと思います。実際、それらのほとんどは、同じホストへの並列リクエストの数を制限しているため、ページをリロードする前に「待機」します。

リロードしようとしている URL とまったく同じ URL を AJAX リクエストで呼び出している場合、Firefox は同時に複数のリクエストを実行しません。簡単な回避策は、ランダムなクエリ文字列を URL に追加することです。

別のオプションは、javascript beforeunload イベントを使用して AJAX リクエストをキャンセルすることです。jQuery を使用して Ajax リクエストを中止する

于 2013-04-28T21:54:14.313 に答える
0

あなたの場合、タイムアウトを設定することを考えるかもしれません。同様の問題がすでに解決されていることもわかりました: クリック

于 2013-04-28T21:59:52.327 に答える