0

我正在开发一个项目,该项目至少获取 50,000 个必须显示为表格数据的数据集。数据集是从我们的 MySQL 数据库中获取的。用户有以下要求...

  1. 用户不想设置分页,但他们希望在向下滚动页面时呈现越来越多的表格行。
  2. 如果他们向上滚动,用户不应该看到之前向下滚动时显示的表格行。这意味着我必须删除以前创建的表行或隐藏它们。
  3. 延迟或加载时间,以免检测到任何明显的延迟或延迟。

我们的项目使用带有 Django 作为框架的 LAMP (Python) 堆栈。我们使用 Django 模板,它们是服务器端模板。我不知道如何将相同的体验翻译到客户端。我有一个方法的想法,有人可以验证或纠正它吗?

我的预期方法如下:

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

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

  3. 当用户向上滚动并到达前一页时,表格行将被删除或隐藏。

我不知道如何实现第 3 步。我应该听什么事件?为了触发第 3 步,我应该检查哪些先决条件。我也不知道第 2 步是否是正确的方法。

4

1 回答 1

0

这是我要做的:

  1. scrolled-past向滚动到窗口顶部的任何行添加一个类 ( )。(如果你使用 jQuery,jQuery Waypoints是一个很好的检测工具。)
  2. 到达底部时获取更多数据。
  3. 获取数据后,隐藏所有.scrolled-past元素,添加新行并滚动到表的顶部(现在第一行是之前可见的最上面的行)。

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

于 2013-08-07T21:26:22.803 回答