Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置无限滚动以表格形式显示数据,并仅呈现一小部分数据_Javascript_Html_Django Templates_Frontend_Infinite Scroll - Fatal编程技术网

Javascript 设置无限滚动以表格形式显示数据,并仅呈现一小部分数据

Javascript 设置无限滚动以表格形式显示数据,并仅呈现一小部分数据,javascript,html,django-templates,frontend,infinite-scroll,Javascript,Html,Django Templates,Frontend,Infinite Scroll,我正在从事一个项目,该项目至少获取50000个数据集,这些数据集必须以表格数据的形式显示。数据集是从我们的MySQL数据库中获取的。用户有以下要求 用户不希望设置分页,但希望在向下滚动页面时呈现越来越多的表行 如果向上滚动,用户将看不到以前向下滚动时显示的表行。这意味着我必须删除以前创建的表行或隐藏它们 延迟或加载时间,以免检测到任何明显的延迟或延迟 我们的项目使用带有Django的LAMP(Python)堆栈作为框架。我们使用Django模板,它是服务器端模板。我不知道如何将同样的经验翻译到客

我正在从事一个项目,该项目至少获取50000个数据集,这些数据集必须以表格数据的形式显示。数据集是从我们的MySQL数据库中获取的。用户有以下要求

  • 用户不希望设置分页,但希望在向下滚动页面时呈现越来越多的表行
  • 如果向上滚动,用户将看不到以前向下滚动时显示的表行。这意味着我必须删除以前创建的表行或隐藏它们
  • 延迟或加载时间,以免检测到任何明显的延迟或延迟
  • 我们的项目使用带有Django的LAMP(Python)堆栈作为框架。我们使用Django模板,它是服务器端模板。我不知道如何将同样的经验翻译到客户端。我有一个方法的想法,有人能验证它或纠正它吗

    我的预期方法如下:

  • 加载时获取原始数据集行的某个子集(例如5000)。这将使用memcached在服务器端进行缓存。在页面加载时,只会显示其中的某个子集(例如100)。每一页都有与之相关联的特定状态,例如页码或页面大小。这些将使用HTML5历史状态API进行初始化

  • 当发出ajax请求时,将获取额外的数据集,并将额外的表行追加到现有的表行中

  • 当用户向上滚动并到达上一页时,表行将被删除或隐藏

  • 我不知道如何实施步骤3。我应该听什么节目?我应该检查哪些先决条件才能触发步骤3。我也不知道第2步是否是正确的方法。

    以下是我要做的:

  • 将类(
    滚动过去
    )添加到滚动过去窗口顶部的任何行。(如果您使用的是jQuery,那么它是一个很好的检测工具。)
  • 到达底部时获取更多数据
  • 提取数据后,隐藏所有
    。滚动过去的
    元素,追加新行并滚动到表的顶部(此时第一行是以前最上面可见的行)

  • 隐藏、添加和滚动时可能会出现小故障,但我敢打赌,一个小时的调整就能解决。将最上面可见行的确切顶部偏移量添加到步骤3中的滚动偏移量是使其更整洁的一种方法。

    是否希望滚动超出边界的行立即消失?(也许你现在已经解决了?)我还没有解决。该工作已取消优先级。如何检查是否已滚动过该行?对不起,我有点JS新手。要么使用jQuery Waypoints之类的插件,要么这样做:1)使用
    setInterval(func,delay)
    设置计时器。2) 在setInterval回调函数中,迭代所有行,对于顶部偏移量小于窗口滚动偏移量的每一行,添加类。