AJAXはクライアント側でステータスイベントを提供しますが、あなたの場合、エンドユーザーに進行状況を送信したいので、それがうまくいくとは思いません.iframeを使用してajax呼び出しを行うことでそれをだますことをお勧めします.サーバーからクライアントへの進行状況を常にフラッシュします。
データが巨大で、ブラウザがハングすることが明らかなペイントを開始する場合は、setTimeout / setInterval を使用するようにペイント メカニズムを改良することをお勧めします。また、ステップ 1 に従えば、サーバーからフラッシュされたデータの操作を開始できます。完全なデータが終了するまで待機
編集 - iframe 経由で進行状況を表示する方法
コンテンツ全体があり、ajax 呼び出しを行う main.aspx があるとします。
サーバーからのデータを提供する info.aspx もあります。
info.aspx には 6 つのステップが含まれており、すべてのステップについてユーザーに通知したいとします。
//Step 1 - do some thing
Response.Write("<script>progress = '10'; progressText = 'Completed step 1'; ");
Response.Write(" updateProgress(); </script>");
Response.Flush();
//Step 2 - do some thing
Response.Write("<script>progress = '30'; progressText = 'Completed step 2'; ");
Response.Write(" updateProgress(); </script>");
Response.Flush();
上記の場合、progress および progressText 変数を更新し、updateProgress()
javascript を呼び出すと、updateProgress は次のようになります。
function updateProgress()
{
//update parent window/container on the progress which will show an visual indicator of the progress
}
updateProgress() 関数は最初にフラッシュされます