0
我有一個ASP.NET MVC應用程序模塊,爲用戶提供日誌數據。所述MVC頁面有一個過濾器,通過Ajax檢索關於具有象第1周,第2周,第3周等值濾波器選擇數據如何實現延遲加載文本
這是我的功能,供應日誌
[HttpGet]
public ActionResult GetLogs(DateTime startDate, DateTime endDate)
{
var logs = applicationService.GetAllLogs(startDate, endDate).OrderByDescending(x => x.DateTime).ToList();
return PartialView(logs);
}
這是我部分查看
@model IEnumerable<ApplicationLogObj>
<table style="width:100%">
@foreach (var log in Model)
{
<text>
<tr>
<td>
<em>@log.DateTime.ToString("MM/dd/yyyy HH:mm:ss") </em>
</td>
<td>
@log.UserName
</td>
<td>
@log.Action on @log.Module
</td>
</tr>
</text>
}
</table>
以下是我正在運行的jquery函數來顯示主頁面上的日誌。
$(function() {
$("#btn1Week").click(function() {
var start = '@DateTime.Now.AddDays(-7).ToString("MM/dd/yyyy")';
var end = '@DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss")';
getLogs(start, end);
});
$("#btn2Week").click(function() {
var start = '@DateTime.Now.AddDays(-14).ToString("MM/dd/yyyy")';
var end = '@DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss")';
getLogs(start, end);
});
$("#btn3Week").click(function() {
var start = '@DateTime.Now.AddDays(-21).ToString("MM/dd/yyyy")';
var end = '@DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss")';
getLogs(start, end);
});
function getLogs(start, end) {
$.ajax({
type: "GET",
url: "/AppLogs/GetLogs",
dataType: 'html',
data: { startDate:start, endDate:end },
contentType: "application/html; charset=utf-8",
success: function (result) {
$("#logDiv").html(result);
}
});
}
});
該應用程序運行正常,但問題是日誌包含超過500個記錄只有一個星期。因此,當用戶點擊3周時,需要很長時間才能解析HTML並將其提供給主應用程序,有時腳本進入不響應模式,提示用戶停止腳本。
是否有一種簡單的方法來實現所謂的「延遲加載」,以便我可以在用戶向下滾動屏幕時服務日誌(就像在Google圖片搜索中發生的情況一樣)?
將不勝感激的幫助。謝謝。
看起來你應該實現分頁或使用虛擬滾動插件 – 2015-02-09 01:28:02
你能指導我怎麼做 – progrAmmar 2015-02-09 01:32:17
有很多插件可以讓你做到這一點。搜索[mvc paging](https://www.google.com.au/search?q=mvc+paging&oq=mvc+paging&aqs=chrome..69i57j69i65j0l4.2950j0j7&sourceid=chrome&espv=2&es_sm=122&ie=UTF-8)或[mvc虛擬滾動](https://www.google.com.au/search?q=mvc+paging&oq=mvc+paging&aqs=chrome..69i57j69i65j0l4.2950j0j7&sourceid=chrome&espv=2&es_sm=122&ie=UTF-8#q=mvc+virtual +滾動) – 2015-02-09 01:35:31