我们有一个使用J2EE堆栈在3层架构中实现的Web应用程序。应用程序主要是根据搜索条件从数据库中获取结果集,我们的堆栈使用GWT,EJB3.0 hibernate和RDBMS。
我们在无状态会话bean中有搜索逻辑/查询。 servlets / controller调用这些无状态会话bean来获取搜索结果。由于我们使用GWT作为UI框架,因此我们使用POJO /模型在UI小部件上呈现,如表/网格等。
我们的模型对象太沉重,因为包含大量业务信息才能在UI中显示,并且必须运行查询,权限等数组。因此,搜索需要很长时间。 平均而言,如果每个模型生成花费1秒,则生成15个模型大约需要15秒,这是我们对UI的分页限制。
我想优化模型生成时间,我可以考虑在线程中运行模型生成但是如何维护DB / WS结果的顺序。 你能否提出一下改善响应时间的最佳方法?
SLSB上的伪代码如下所示。
search(criteria,paging properties){
Get PRIMARY keys by running the query based on search criteria from DB/WS
for each key/id build the model //This is taking too long as it's synchronous
return list of models in sorting order back to controller with paging properties
}