0

リクエストが行われるASP.NETページがあり、しばらくするとサーバーが新しいページまたはダウンロード用のファイルを返します。データを返すまでに時間がかかる間、サーバーが「処理中...」であることを画面に示したい。

ユーザーが送信を押したときに JavaScript を呼び出すのは簡単です。また、ポストバックでページをリロードすると、「処理中...」インジケーター (ページの上部に表示される DIV の一部) が消えます。

私の問題は、ほとんどの場合、サーバーから返されたデータがページではなく、保存するファイルである場合です。サーバーがデータを返し始めた瞬間を捉えて、javascript/remove "Processing" DIV を実行するにはどうすればよいですか? 異なる MIME タイプの返信の場合にそうする方法はありますか? どのような場合でも可能ですか?

4

1 に答える 1

1

タイマーを使用して何をしようとしているのか、何が起こったのかを推測する方法はいくつかありますが、実際に説明していることを実行するには、ダウンロードが発生したことを示すためにサーバーをポーリングする必要があります。

私がすることは、ファイル、Response.WriteFile を取得し、データベース、ファイル システム、またはトランザクションが完了したことを一意に識別する何らかのストアにフラグを書き込むことです。クライアント側では、スクリプトはサーバーをポーリングしており、サーバーでは、ポーリング応答がダウンロードが発生したことを示すフラグのストアをチェックしています。

ここで重要なのは、ダウンロード プロセス自体を細かく制御する必要があるということです。単にファイルにリダイレクトするだけでは、必要な制御はできません。これらの手順のいずれかを実行する方法についてさらに詳細が必要な場合は、お知らせください。

于 2012-07-18T15:37:12.373 に答える