我有使用 Primefaces 中的选择列表获取项目列表的当前代码:
<p:pickList showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" label="#{msg.dataview_label_net}" id="pickListNet" converter="firstItemConverter" value="#{dataViewBean.net}" var="node" itemLabel="#{item.name}" itemValue="#{item}" />
但是,我在 Google Chrome 上显示此列表时遇到性能问题。
我的后端很快,但是要在 Primefaces 中显示所有项目需要很长时间才能渲染。是否可以在选择列表中使用一些分页或像延迟加载这样的方法?
我的列表中有大约 3000 项。我在这里尝试了一个 js 修复来改进: https://code.google.com/p/primefaces/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20TargetVersion%20Reporter%20Owner%20Summary&groupby=&sort=&id=7655
但它对我来说效果不佳。
最佳答案
这个问题的最佳解决方案是尝试另一个组件,例如 DataTable
。
我使用带有多个复选框和延迟滚动的 DataTable 来仅显示部分列表。我的加载时间从 1 分钟 15 秒减少到 15 秒。
关于primefaces - 使用 p :picklist to a large item list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131998/