我正在寻找技术/最佳实践来处理我们基于网络的应用程序的工作方式。
目前,当用户搜索字段时,它可以同时返回超过10000条记录,这对我来说是浪费带宽和内存。
是否有办法根据选择显示的行数限制返回的行数。即如果在网页上用户每页选择100行,则只返回100行而不是一次加载所有10000行,然后当单击下一页时,将加载下100行,依此类推。
更新:当前实现会获取所有数据,并将其绑定到t:datatable
和t:dataScroller
,以便在页面之间进行导航。
从我在JFS 1.1中的阅读中,没有提供服务器端分页(纠正我,如果我错了)并提供这样的机制我需要编写自定义代码,如http://wiki.apache.org/myfaces/WorkingWithLargeTables
有人确认这是一个很好的解决方案吗?使用RichFaces不是一种选择。
感谢
答案 0 :(得分:2)
你应该使用jsf组件进行服务器端分页,作为richfaces中的一个例子:
http://katzmaier.blogspot.com/2010/03/richfaces-server-side-pagination.html
答案 1 :(得分:1)
您是否可以使用Paginator组件来控制相关记录数的显示?
如果您需要限制返回的行数,可以将其指定为查询语法的一部分。
答案 2 :(得分:1)
看一下entityquery类。这个已经支持服务器端分页和排序。它适用于简单或丰富的数据表。如果你需要一些轻量级的东西,甚至可以在普通的jsf之上使用jquery数据表。