1

この質問が何度も聞かれたことは知っていますが、私の問題は少し異なります。

ユーザーがExcelファイルをダウンロードしてアップロードできるページがあります。Excelのダウンロード中、ファイルの生成には約2分かかります。データベースを更新するチェックポイントを追加しました(処理の開始、ヘッダーの処理など)。アップロードについても同じことをしました。

また、一定の間隔でデータベースをチェックし、ステータスをユーザーに出力して(処理の開始、ヘッダーの処理など)などのフィードバックを提供するajaxリクエストもあります。

問題は、プロセスが完了したときにのみフィードバックを受け取ることです。バックグラウンドプロセス中にセッションがブロックされ、他のリクエスト(ajax)はバックグラウンドプロセスが終了した後にのみ完了するようです。ajaxは4秒間隔で約10件のリクエストを行います。最後に10件の応答が返されます。

2つのiframeとフレームを試しました。1つはajaxを実行し、もう1つはプロセスを実行しています。動作しません。私は別のブラウザ(IEで実行されているプロセス、FFで実行されているajax)を試しましたが、それは機能します(コードが機能するようになりました)。誰かアドバイスできますか?ありがとう

ps私の環境はIIS6、MVC1.0ブラウザーを備えたASP.NET3.5はIE6.0です

4

2 に答える 2

1

お使いのブラウザには、同時に動作できる接続の数に制限があります。

IEには2つの接続の制限があると思います。つまり、AJAXリクエストを実行している場合でも、同時に実行できるリクエストは2つだけです。

これが、他の接続を処理していて、完了するまでステータスリクエストに到達しないため、最後まで結果が表示されない理由である可能性があります。これは、同じ接続制限に悩まされていないため、異なるブラウザから実行した場合に機能する理由も説明しています。

これが問題の詳細を説明する記事です。

于 2009-11-12T14:49:37.217 に答える
0

これはまさに私が探していたものです (asynchronous-processing-in-asp-net-mvc-with-ajax-progress-bar)

IAsyncResultのデリゲートBeginInvokeを使用すると、ブロックされたセッションに役立ちました

于 2009-11-21T02:44:18.713 に答える