2009-07-13 23 views
1

私は、データベースに1000個のレコードを作成しています。それは時間がかかることを意味します。今や、ユーザーは気難しくなることがあります。ですから、彼はコントローラーで発生する生成プロセス中にプログレスバーを表示したいと思います。私はjqueryやフラッシュでかなりクールなプログレスバーを見つけましたが、アクションにリクエストを送信した後、私が知っている新しいビューページを作成するための最初のデータは、コントローラの動作は終了します。徐々に投稿するデータを表示するasp.net mvc

プログレスバーを表示する方法とデータを送信して「読み込む」方法はありますか?

ありがとうございます。

答えて

1

としてサーバー呼び出しを行う必要があり、私はMVCをASPに(とオーバーフローをSTCKする)新たなんです。しかし、私のアプローチは、新しいスレッドでレコード生成プロセスを開始することです。プログレスバーで部分的なビューをロードするビューにリダイレクトします。そのビュー上のスクリプトでpartialを更新します。以下のような smthing:私が見た

<div id="documents-partial"> 
    <% if (ViewData["IsDone"] == false) { %> 
    <% Html.RenderPartial("ProgressBar", ViewData["Progress"]); %> 
    <% }else{ %> 
    <% Html.RenderPartial("Records", ViewData["Records"]); %> 
    <% } 
</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
    update(); 
    } 
    function update(){ 
    $('div#id-of-where-you-want-to-load-partial-view').load('/Records/CheckForUpdate', {param1: <%= ViewData["Progress"].Id %>}, update /*on callback calls the update method again*/); 
</script> 
1

たぶん、あなたは、AJAX要求

0

一つの方法は、buildserverはチームシティーのためのウェブインターフェースにありました。

ビルドの進行状況が表示されます。プログレスバーは最後のビルドの継続時間に設定されます。

これは完璧には機能しませんが、役に立つほど十分です。完了した作業が(ビルドの継続時間のように)常に同等であれば、この方法で試すことができます。

0

あなたは、あなたがこれを使用することができますレコードをフェッチするために、AJAXを使用している場合は、

// Progress Bar ----------------------------- 
$().ajaxSend(function(r, s) { 
    $("#contentLoading").show(); 
}); 

$().ajaxStop(function(r, s) { 
    $("#contentLoading").fadeOut("fast"); 
}); 
//------------------------------------------- 


<img id="contentLoading" src="../../Content/images/ajax-loader.gif" style="display:none" alt="Updating ..." /> 

AJAXリクエストが実行されている間、このコードは、アニメーションGIFのプログレスバーを表示し、非表示になります。

関連する問題