从 Lumen API 时间加载少量数据

Loading small amounts of data from Lumen API time

我有一个 API 内置流明,我计划使用 Angular 这样的单页框架在前端使用 API json 响应。

问题是某些路由的响应包含大量数据,截至目前大约有 50000 行。我打算根据用户的使用量将数据一小部分发送到前端。

for example on a social site you get small chunks of posts loaded at a time and as you scroll down more post are loaded until you eventual close the application

我希望我的 API 做类似的事情。我考虑过的替代方案是

  1. 使用Laravel Chunk 方法。这种方法的问题我发现chunking不一定每次带来少量的数据,它只是细分它,我不能使用它,因为如果要细分的数据是服务器会加载很长时间像我的情况一样巨大,最终会 运行 内存不足,而且用户体验很差。
  2. 使用 Laravel 分页 方法。尽管这完全符合我上面的描述,但我遇到的问题是我希望数据采用列表格式并在用户到达页面末尾时延迟加载,就像 facebook 在到达最后一个页面时所做的那样 post.我不希望用户分页查看更多数据。我希望 API 根据它离开的位置继续发送数据。

我有什么选择可以实现这个目标,还有我上面提到的选项的解决方法吗?

谢谢你

因此,由于分页方法完全满足您的需求,因此您需要使用它。实现一个 API 函数,它将在服务器端接收一个起点和一个偏移量。

在客户端,您不必显示分页控件。您可以改为实施 scroll 事件和 detect if the scrolling reached the bottom。如果是,则触发一个 function (仍然在客户端的 JS 中),这将请求下一个数据包。为此,您将始终需要 know/find 计算出已经加载了多少条记录,并将该数字作为起点和您的偏移量发送到我们上面讨论的 API function