2011-08-24 108 views
0

我正在開發一個使用ASP.NET 4.0的網站。我想獲取&當顯示按鈕被點擊時向用戶顯示6,000條記錄我不想使用分頁和griview。一張簡單的表格將盡我所能實現的是儘可能快地顯示記錄。如果我試圖填補記錄客戶方像如何快速顯示重量數據

<html><table id='tbl'></table></html> 
<script> 
function getDataFromService() 
{ 
    PageMethods.GetData(filltable) 
} 
function filltable(result){ 
    for(int i=0;i<=result.length-1;i++) 
    { 
    var td= $('<td\>').append(result[i]) ; 
    var tr=$('<tr\>').append(td); 
    $('#tbl').append(tr); 
    } 
} 

,因爲它需要時間來動態創建6000行這招失敗。我嘗試了虛擬滾動,即只抓取100條記錄&,當用戶滾動抓取下一個1000時,但我無法找到實現此目的的正確方法。任何建議,將不勝感激。

+0

被稱爲(http://en.wikipedia.org/wiki/ Lazy_loading)。 – 2011-08-24 16:53:46

回答

2

正如指出的別人,增加6000行總是會明顯減慢,但可以減少時間相當如果你建立一個在調用append()之前爲所有的標籤提供了長字符串,並且不需要使用$()來構建行,這也很昂貴。

下面的代碼保存幾千調用$.append()$()並會使表相當快:[!延遲加載]

function getDataFromService() 
{ 
    PageMethods.GetData(filltable) 
} 

function filltable(result){ 
    var html = ''; 

    for(int i=0;i<=result.length-1;i++) 
    { 
    html += '<tr><td>' + result[i] + '</td></tr>'   
    } 
    $('#tbl').append(html); 
}