0

私が持っているのは、サーバー上で実行され、多くの時間がかかるプロセスです。基本的に、ポストバック時にページに表示されるいくつかのデータ テーブルを構築します。

私が欲しいのは、サーバー プロセスの実行中に進行状況をどこかに記録し、完了したデータで更新される前に、見ているページでそれを報告する方法です。

これは可能ですか?これを行うために私が考えることができる最善の方法は、進行状況をサーバー上のファイルに記録し、Ajax/Javascript を介してファイルの内容を定期的に読み取ることですが、これは面倒なようです。

おそらく、これは複数のページまたはスレッドを使用して可能です。わからない。

助言がありますか?

編集:
主な目標は、Webページに何らかの進行状況バーを表示して、上記の進行状況を表示することです。

4

3 に答える 3

3

これは可能ですか?

はい、しかしそれは簡単ではありません。

これを行うために私が考えることができる最善の方法は、進行状況をサーバー上のファイルに記録し、Ajax/Javascript を介してファイルの内容を定期的に読み取ることですが、これは面倒なようです。

うん、かなり。他のオプションは、データベースを使用して情報またはセッションを保存することですが、Ajax 要求を介して何らかの方法でアクセスできる保存場所であれば機能します。Web サービスなどを作成して、使用するストレージ方法を抽象化することは間違いありません。

Microsoft の例での一般的なアプローチの実装を次に示しますSession を使用して現在の進行状況を保存し、ASP ベースの構造に大きく依存していました。

完全に別の方法は、クライアントとサーバーの間に websocket をセットアップして、サーバーからクライアントに情報をプッシュできるようにすることです。セットアップは簡単ではないかもしれませんが、パフォーマンスは向上する可能性があります (ネットワーク IO の削減)。ただし、そのような解決策の例(または試みた経験)はありません。

于 2013-01-03T22:26:16.200 に答える
0

ajax 、 ajax 、 xhr 、 jsonp 、およびプロセス内のマイルストーンにより、ステータスを提供できます

于 2013-01-03T22:27:25.730 に答える
0

実行しているプロセスがページから独立している場合 (サーバー内のシェル スクリプトなど)、このスクリプトの中間結果を、javascript でアクセス可能なテキスト ファイル (たとえば、http://contosoweb.com ) に書き込むことができます。 /web/log.txt )、タイマーといくつかの jquery を使用してページから定期的に更新します。

ここでは、jQuery ドキュメントに .Ajax の情報があります: http://api.jquery.com/jQuery.ajax/

そして、ここでタイマーを使用する方法: How to set a timer in javascript

于 2013-01-03T22:40:11.643 に答える