1

他の多くのファイルを処理するファイルがあり、処理に最大 30 分かかる場合があります。フロントエンドでファイルにAJAXリクエストを行います。ファイルは、完了率に関する別の一時ファイルに出力されます。完了すると、成功メッセージを独自の XML 出力として出力します (tmp ファイルには出力しません)。

私が抱えている問題は、処理時間が短い場合..最大3分と言うと、AJAXリクエスト(jQueryを介して作成された)が生き続けることです。ただし、処理に時間がかかる場合 (4 分以上) はタイムアウトが発生します。そして、AJAX 接続が切断されます。どうすればそれを防ぎ、ブラウザが閉じられるまで生き続けることができますか?

4

1 に答える 1

1

あなたはそれをすることができません。サーバー側で接続を維持できるコメットサーバーでない限り、データに更新があると、コンテンツがプッシュされます。

あなたの場合、私が考えることができる唯一の方法はこれを行うことです:

function ajax_call () {
$.ajax({
  url : 'get_file_processing_output.html',
  success : function (response) {
     check your response, if file processing is not finished, then call ajax_call() again
     if it is finished, then just do whatever you need.
  },
  timeout : function () {
    time out then directly call ajax_call() again, maybe with a time interval would be better
  }
})
}

処理がまだ完了していないことをクライアントに伝えるために、サーバー側から何かに応答する必要があると思うので、上記の ajax で成功のコールバックがあります。

于 2011-08-07T08:39:40.777 に答える