在前端或后端过滤分页排序

sh9*_*218 4 java sorting pagination filter

我有一个应用程序,主要显示数据库中的表数据。但这些表需要应用分页、排序、过滤。对于排序和过滤,它们需要应用于整个列表,而不仅仅是第一个。页。我脑子里有3个想法:

  • 从后端检索整个列表,然后使用 javascript 在前端应用分页、排序、过滤。(这种方式非常简单,我发现很多库都可以做到)。
  • 在休眠级别进行排序、分页、过滤。(即创建动态 SQL 以获取结果,然后使用 AJAX 调用渲染到前端。)
  • 在 Java 级别进行排序、分页、过滤。(即,从数据库中获取整个列表,然后使用 Spring PagedListHolder 进行分页和排序,也许是其他框架进行过滤。然后再次使用 AJAX 调用渲染到前端。)

哪种方式最好达到这三个?或者还有其他我没有想到的更好的方法。

感谢您的任何帮助或提示。

Ter*_*rry 5

你没有说涉及多少数据。如果它很多,您肯定不想发送它,例如不要将 20GB 发送到浏览器中的 javascript 进行渲染。

通常,最好减少结果集并尽可能接近数据库进行所有操作。但是您不想对动态 SQL 过于疯狂。您不希望用户能够对非索引数据进行一些巨大的查询。

我是 spring 的忠实粉丝,我认为如果您可以将它的分页功能与 Repository 类中的手动优化查询结合起来,那将是“最好的”。