C# 如何懒散地加载一个有许多行的标准html表?

C# 如何懒散地加载一个有许多行的标准html表?,c#,javascript,asp.net,html,lazy-loading,C#,Javascript,Asp.net,Html,Lazy Loading,我没有使用其他人的表插件,而是选择用标准的HTML方式制作表和行等。我会从数据库获取数据来填充行。但是当行数超过10000行时,我意识到我需要延迟加载行,否则网站会非常慢。我一直在寻找延迟加载表中的行的方法,但我似乎在任何地方都找不到它,所以我的问题只是懒散加载插件是否存在 希望一些大师能回答这个问题。提前谢谢 关于我要做的事情的背景:我正在画草图 在html代码中,然后在运行时将行添加到 当用户搜索特定内容时,通过DOM创建表。 当他们搜索它时,会有成千上万的结果,我想 懒散地将结果加载到表中

我没有使用其他人的表插件,而是选择用标准的HTML方式制作表和行等。我会从数据库获取数据来填充行。但是当行数超过10000行时,我意识到我需要延迟加载行,否则网站会非常慢。我一直在寻找延迟加载表中的行的方法,但我似乎在任何地方都找不到它,所以我的问题只是懒散加载插件是否存在

希望一些大师能回答这个问题。提前谢谢

关于我要做的事情的背景:我正在画草图 在html代码中,然后在运行时将行添加到 当用户搜索特定内容时,通过DOM创建表。 当他们搜索它时,会有成千上万的结果,我想 懒散地将结果加载到表中

jQuery为图像和图像容器提供lazyload

其他一些插件允许懒散地加载div

然而,表行的懒散加载似乎并不存在

上下文的一些示例代码:

HTML:


我还没有听说过一个插件可以做这样的事情,但我大多避免使用花哨的JS“库”。从概念上讲,您可以使用AJAX请求来选择例如m>id>n的图像,然后在javascript中,当您想要加载更多图像时,执行另一个AJAX请求,但例如将m和n增加100

许多开源库框架都是基于这一原理运行的,但通常它们使用php生成页面,而不是使用AJAX动态更改内部html

下面是如何将数据库数据从AJAX中取出并放入JS。
在DOM中有数千行数据是一个糟糕的想法,原因很简单:DOM很慢

相反,只渲染需要可见的行。当一行不在视图中时,将其从DOM中删除

我最喜欢的显示数据网格的库是。仅在视口中为数据渲染DOM元素,性能惊人。(该示例显示了50万行!)


SlickGrid的功能还有很多,但您会特别感兴趣的是,当您滚动时,服务器会流式传输一小段行。

我已经回答了一个非常类似的问题,使用原始代码,包括项目,看看,它可能会帮助您:现在有其他或新的库吗?SlickGrid上次提交时间为2016年链接已断开
        <fieldset>
        <legend>PhotoViewer v1.6</legend>
        <h4 id = "albumName"><i>Photos</i></h4>
        <table cellspacing="1" border="2" id = "photoTable" class = "lazyProgressiveLoad">
            <tr style="font-style: italic; font-size: small; font-family: Segoe UI Light; color: Red">
                <th>--Photo--</th>
                <th>--Label--</th>
                <th>--Path--</th>
                <th><input type="button" value="Add Photo" onclick="addPhoto()" id = "addPhoto"/></th>
            </tr>
        </table>
    </fieldset>
$(function() {
      $("img").lazyload({
          effect : "fadeIn"
          /*
          ,appear : function(elements_left, settings) {
              console.log("appear");
              console.log(elements_left);
              //console.log(this, elements_left, settings);
          },
          load : function(elements_left, settings) {
              console.log("load");
              console.log(elements_left);
              //console.log(this, elements_left, settings);
          }
          */
      });
  });