有一段时间我一直在与ZK合作,现在我在云中托管了一个应用程序,但这不符合我的性能预期。我的应用程序使用ZK进行视图,Hibernate用于与MySQL数据库交互,Spring用于管理与数据库交互相关的bean。
示例场景:
步骤3大约需要步骤1,我不明白,用于数据库交互的Spring管理对象尚未初始化。另一件需要注意的事情是,当从列表中添加或删除对象时,我不会从数据库重新加载整个列表;保存Spring管理bean @Autowired中的对象的本地副本到我的ViewModels。 (是的,可能与数据库不同步,但在我的情况下没有太大的问题)但这消除了hibernate / spring /数据库作为瓶颈,对吧?。
我也在本地主机上运行了这个,当然这比我想象/想要的更快但仍然不是即时。
现在我认为可能需要在与列表相关的java中创建和删除对象。我研究了ZK活页夹如何工作以及如何更新对象,但我无法找到关于活页夹如何处理列表更新的任何信息。
有人知道ZK活页夹如何在视图模型中更新视图中的列表,方法是使用@NotifyChange注释的(" listA")?它实际上是扔掉旧列表并设置整个新列表,还是以某种方式合并差异?
还欢迎评论其他可能成为瓶颈的事情!
提前致谢,
罗伯特
答案 0 :(得分:0)
我使用ZK工作很多,但我从未使用@NotifyChange,当我想重新加载网格或列表框的数据时,我总是渲染或再次加载它。对我来说,它在不到1秒的时间内正常工作。这是我绑定的一个例子:
>
是的,当数据发生变化时,我会回想起我的方法,再次加载它并且工作得很好。
@Listen("onCreate = #listboxSolicitudes")
public void loadList() {
List<ConsultasSolicitudes> listaConsulta = null;
listaConsulta = ConsultasSeguimientoDeSolicitudesDAO.obtenerSolicitudesAsignadas((Long) cbResponsable.getSelectedItem().getValue());
ListModelList<ConsultasSolicitudes> solModel = new ListModelList<ConsultasSolicitudes>(listaConsulta);
listboxSolicitudesAsignadas.setModel(solModel);
}
也许这可以帮助你,但如果花了这么长时间,一定有些错误。
答案 1 :(得分:0)
我假设您使用Listbox
来表示您的列表
首先你需要知道,zk使用相同的数据
用于MVC的MVVM结构。这意味着
它使用ListModel
和performance tips
对MVVM也很有用。
当然zk无法实现标准模型
在某种程度上,它符合每个人的需要
所以你要做的就是实现你自己的
模型。通常最好从ListModelList
延伸
这样您就可以智能地更新列表。