2011-08-24 113 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); 
}