如何快速显示重量数据

问题描述:

我正在开发一个使用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

没有快速检索和显示网页上6000条记录的方法。只需要将很多行渲染到屏幕上就需要时间。

你有两个选择:

  • 分页
  • 连续滚动

这听起来像连续滚动模式将工作最适合你。下面是讨论如何使用,以实现该技术的jQuery的文章:

http://www.go4coding.com/post/2011/04/11/Auto-loading-content-on-page-scroll-in-aspnet-using-jquery.aspx

正如指出的别人,增加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); 
}