延迟加载展示primefaces

问题描述:

我想在我的应用程序的数据表中使用延迟加载。我浏览了Primefaces展示网站上的示例:http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml。但是我不明白这是一个懒加载的例子。延迟加载展示primefaces

应用程序第一次加载页面时,他仍然得到200辆车。我希望(因为我想在我的应用中以这种方式实现延迟加载),第一次应用程序加载此页面时,他只加载第一页上有多行的条目,然后当用户单击第二页下一个x条目被加载等等。因为我有一个潜在的巨大的数据表(超过一百万条记录),我显然不想加载一百万条记录,并且让用户等待5分钟,如果他只需要前20条记录中的某条记录。

编辑:更糟的是,当我使用viewscoped的spring backing bean时,我注意到他每次用户切换到另一个页面时都会加载所有记录。我甚至会从不使用延迟加载的方式使用数据表而受益。

这个例子只是为了说明它是如何工作的。它是由你自己来实现方法:

public List<?> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,Object> filters)

这个人是你必须扩展LazyDataModel类的一部分。

如果您以只能获取页面所需记录(即所有记录从firstfirst+pageSize)的方式实现此方法,那么您将拥有适当的延迟加载。展示柜没有可用的数据库实施示例。

+0

但是,如何展示一个懒惰加载的数据表示例?为什么他们没有显示一个实际上是懒惰加载的例子? service.createCars(200)仍然创建200辆而不是20辆 – 2014-11-03 09:00:37

+3

它显示了前端如何在延迟加载和分页的情况下正常工作。因为他们需要某种数据源来显示他们创建汽车库所需的分页。也许这不是他们身边的最好例子。例如,如果他们例如把所有汽车放在一个应用程序范围的bean(它像数据库一样),然后查询该bean,而不是初始化在viewcoped bean中的汽车列表。 – ChristopherS 2014-11-03 09:06:05