問題の核心は、サーバーから完了した作業の割合を取得することです。唯一の方法は、x秒ごとにサーバーをポーリングすることです。いくつかのアプローチがあります、
- ajaxを使用してhttphandler(syncまたはasync)呼び出しを開始します。
- [ポーリング] ASP.NETタイマーコントロールを使用して、x秒ごとに更新パネルを更新します。
また
http://encosia.com/2007/07/25/display-data-updates-in-real-time-with-ajax/
または、ポーリングにjqueryを使用します。
't'間隔でサーバーをポーリングし、ステータスを取得します。そのためには、ステータスを取得するためにHTTPHandlerへのAJAX呼び出しを開始する関数を「t」間隔で呼び出す必要があります。
$(function() {
setInterval(update, 't');
});
function updateStatus() {
$.ajax({ type: "POST", url: "GetStatusHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { UpdateStatus - Update some progressbar plugin }
});
}
したがって、2つのhttphandlerがあり、1つはプロセスを開始し、もう1つはステータスを取得します。
これらについて調べて、自分に合ったものを見つけることができます。