我正在生成讓我們說1000條記錄到數據庫。這意味着需要一些時間。現在,用戶可能變得不耐煩。所以我想在生成過程中向他展示一個進度條,這在Controller中發生。我在jquery或flash中發現了非常酷的進度條,但我不知道如何使用它們,因爲在向一個動作發送請求之後,我創建一個新視圖頁面(我知道)的第一個數據是在控制器操作完成。逐漸發佈數據以查看asp.net mvc
任何想法何時顯示進度條以及如何發送一些數據,以便它「加載」?
在此先感謝。
我正在生成讓我們說1000條記錄到數據庫。這意味着需要一些時間。現在,用戶可能變得不耐煩。所以我想在生成過程中向他展示一個進度條,這在Controller中發生。我在jquery或flash中發現了非常酷的進度條,但我不知道如何使用它們,因爲在向一個動作發送請求之後,我創建一個新視圖頁面(我知道)的第一個數據是在控制器操作完成。逐漸發佈數據以查看asp.net mvc
任何想法何時顯示進度條以及如何發送一些數據,以便它「加載」?
在此先感謝。
我是新來的asp的MVC(和STCK溢出)。但我的做法是在新線程中啓動記錄生成過程。重定向到用進度條加載部分視圖的視圖。然後使用該視圖上的腳本更新部分。像 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>
也許你應該調用服務器爲Ajax請求
一種方式我看到的是在webinterface爲buildserver TeamCity的。
它顯示了您的構建的進度。進度條被設置爲最後一次構建的持續時間。
它並不完美,但足以勝任。如果所做的工作總是可比較的(比如構建的持續時間),那麼可以嘗試這種方式。
如果您正在使用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動畫的進度條。