有几个 Play Framework 分页问题,但都在使用 JPA 或 ebean。我需要对从 Web 服务返回的数据进行分页。有没有办法用播放分页模块来做到这一点,还是我坚持使用 jQuery?我也是新手,Java 来自 asp.net MVC。Web 服务正在返回我正在查询的任何模型的列表。
问问题
667 次
1 回答
1
您不应该在 Play 的控制器中对来自 Web 服务的结果进行分页,因为它不是最佳的,请考虑 3 个场景(按此顺序)
假设您想一次显示 10 个项目,但您的生成器为示例查询返回 100.000(这意味着 10.000 个页面)
- 分页应该由数据生成器(在本例中为 Web 服务)完成,因此您应该发送一个包含 data:
what are you looking for
和how big page you want to get
iewhich page you need
:的查询?q=pagination&size=10&page=123
。这将响应第 123 页上的 10 项列表。如果您有可能更改 Web 服务以添加分页,这是最好的选择。 - 如果 Web 服务不提供分页,则一次获取所有结果并使用 jQuery 对其进行分页。因此,如果您将获得 100.000 个项目的集合,请将它们全部发送到客户端,并确保每次页面更改都不会导致查询 Web 服务。糟糕的选择,但仍然比下一个好。
- 您可以迭代返回的结果以轻松地将其拆分为页面、计算总金额等。如果您将使用控制器对其进行分页,则在每次页面更改时它将获取 100.000 个项目,然后拆分为仅显示其中的 10 个. 戏剧 :)
因此,如果您不能使用第一个选项并且不想使用 jQuery,请在您的服务器上对结果进行一些缓存(即,通过将结果作为单独的行存储在数据库中) - 在这种情况下,您将能够使用Ebean 用于本地搜索和寻呼。
于 2012-10-19T06:49:28.533 回答