2015-02-09 129 views
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") &nbsp;</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圖片搜索中發生的情況一樣)?

將不勝感激的幫助。謝謝。

+1

看起來你應該實現分頁或使用虛擬滾動插件 – 2015-02-09 01:28:02

+0

你能指導我怎麼做 – progrAmmar 2015-02-09 01:32:17

+0

有很多插件可以讓你做到這一點。搜索[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

回答