3

AJAX呼び出しの進行状況についてユーザーを更新する進行状況バーを作成しようとしています。

私がすぐに考えたのは、サーバーでスレッドを開始するためにAJAX呼び出しが必要であり、開始中のAJAX呼び出しを終了し、スレッドが更新をユーザーに送り返すことを許可することでした。

簡単にするために、実際のプログレスバーの機能は無視してください(派手な色と効果でこれらのJSバーの1つを実装することを考えていました;)が、スレッドから更新を取得できる場合は、単純なJSプログレスバーを更新します些細なことになります;))

誰かが私に義務を負わせることができれば、私はこれを達成する方法についていくつかの指針が必要ですか?;)

4

1 に答える 1

3

問題の核心は、サーバーから完了した作業の割合を取得することです。唯一の方法は、x秒ごとにサーバーをポーリングすることです。いくつかのアプローチがあります、

  1. ajaxを使用してhttphandler(syncまたはasync)呼び出しを開始します。
  2. [ポーリング] 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つはステータスを取得します。

これらについて調べて、自分に合ったものを見つけることができます。

于 2010-04-14T07:24:23.310 に答える