我正在开发一个项目,该项目至少获取 50,000 个必须显示为表格数据的数据集。数据集是从我们的 MySQL 数据库中获取的。用户有以下要求...
- 用户不想设置分页,但他们希望在向下滚动页面时呈现越来越多的表格行。
- 如果他们向上滚动,用户不应该看到之前向下滚动时显示的表格行。这意味着我必须删除以前创建的表行或隐藏它们。
- 延迟或加载时间,以免检测到任何明显的延迟或延迟。
我们的项目使用带有 Django 作为框架的 LAMP (Python) 堆栈。我们使用 Django 模板,它们是服务器端模板。我不知道如何将相同的体验翻译到客户端。我有一个方法的想法,有人可以验证或纠正它吗?
我的预期方法如下:
在加载时获取原始数据集的某个行子集(例如 5000)。这将使用 memcached 缓存在服务器端。在页面加载时,只会显示其中的某个子集(例如 100 个)。每个页面都会有特定的状态,例如页码或页面大小。这些将使用 HTML5 历史推送状态 API 进行初始化。
当发出 ajax 请求时,将获取额外的数据集,并将额外的表行附加到现有的表行中。
- 当用户向上滚动并到达前一页时,表格行将被删除或隐藏。
我不知道如何实现第 3 步。我应该听什么事件?为了触发第 3 步,我应该检查哪些先决条件。我也不知道第 2 步是否是正确的方法。