如何在单个请求中实现分页

时间:2014-09-19 18:46:33

标签: ruby-on-rails pagination

我正在使用ruby on rails应用程序。我正在使用will_paginate gem来实现结果中的分页。

但是对于每个新页面,都会发送一个新请求,并且控制器中的所有处理都会再次完成。

我想知道我是否能够以这样一种方式实现分页:对后端的请求只发送一次,结果会相应地显示在页面中。

2 个答案:

答案 0 :(得分:3)

这更多地与前端有关,因为更改页面意味着更改页面的DOM(需要JavaScript)。所以,简短的回答是:

"不,你为什么要这样?"

想一想:分页通常涉及数据集太大以在一个页面上显示的情况。对于最终用户(可能还有他的硬件)可能难以理解,在给定用户数量的情况下可能对网络带宽来说太大或者在传输过程中可能会发生变化(因此对于某些用户来说可能无效)收到后的时间。)

您要实现的案例似乎类似于完全禁用分页,至少它在后端看起来如何:在一个大块中传输所有数据并让客户端对其进行分页。我发现服务器丢弃了一个包含大型数据集的500(内部服务器错误)的情况,因为它无法呈现大小的视图。

嗯......我希望我已经明确表示只有在它不会造成伤害的情况下才会这样做,这在大多数情况下是非常可能的。假设你知道自己在做什么,here's an example如何做到这一点。它根本不是关于后端的。

作为替代方案,您可以异步加载数据块,主要是客户端,只是服务器端分页保持不变。

但是您似乎在浏览数据集时完全避免某些控制器操作被执行。也就是说,您可以在执行其工作的数据集时调用某个操作,然后重定向以包含指向其他的直接(非重定向)链接的分页操作页。

答案 1 :(得分:0)

根本不需要will_paginate和Rails。

您需要在第一个请求中加载所有记录并实施JavaScript分页

当然,你可以使用很多库