【问题标题】:jqgrid paging with struts & hibernate使用 struts 和 hibernate 进行 jqgrid 分页
【发布时间】:2015-03-15 23:25:04
【问题描述】:

在我们的项目中,我们使用 jqgrid 来显示记录。 休眠作为 orm 工具。在我们的数据库中将有 1000 行,我们不想在一个请求中获取它们,因为如果我们这样做会减慢网站响应速度。所以我们决定进行分页 但是我们不知道如何用Struts2和Hibernate实现jqgrid分页。

【问题讨论】:

  • 分页需要的代码
  • 您能否提供有关您创建的网格的更多信息。你用的是哪个datatype?你使用gridview: true 选项吗?您是否使用loadonce: true 选项进行客户端分页(仅当您使用datatype: "json"datatype: "xml" 时才需要它)?

标签: hibernate struts2 jqgrid pagination server


【解决方案1】:

jqgrid 支持客户端和服务器端分页。 1000条记录我建议服务端分页,请看:

http://struts.jgeppert.com/struts2-jquery-grid-showcase/index.action

【讨论】:

  • 如果使用正确的选项,客户端分页可以很好地处理多达 1000 行。查看 [演示](\\diskstation\Documents\Oleg\jqGrid\StackOverflow\performane-90000__.htm) 生成 90000 行数据并使用 20 行页面大小。您可以尝试转到下一页/上一页/第一页/最后一页,性能非常好。加载网格中 90000 行的总时间(以 ms 为单位)将显示在页面的开头。见the answer。如果使用 jqGrid 4.7.0 则不需要任何技巧。
  • 我不知道性能结果,谢谢!根据问题,检索 1000 条数据似乎会降低服务器的速度,因此最好获取 20 条记录 20 条记录(从数据库)并将它们传递给客户端。 OT:struts jquery pluin 3.71。使用 jqGrid 4.6.0,由于许可证更新,他们似乎无法再更新 jqGrid github.com/struts-community-plugins/struts2-jquery/issues/20 :(
  • 我不清楚 struts2 以何种方式(使用哪些选项)使用 jqGrid。我要求 user2656883 清除它。如果使用loadonce 从服务器加载数据,则可以使用具有同样良好性能的旧 jqGrid。如果从data 选项加载数据,我在答案中展示了一个小技巧(在onInitGrid 中设置data),它适用于jqGrid 4.6.0。我想用户没有包含gridview: true 选项。如果他这样做了,那么即使加载 1000 行(列数很少)也会非常快。
  • 如果您尝试对 1000 行使用 loadonce: true,您会发现加载初始数据通常非常快。本地分页 20 x 20 行将在 jqGrid 中立即生效。到服务器的每次往返都比本地分页慢很多倍。你可以试试这个,你会对性能感到惊讶。不要忘记gridview: true 选项。
  • 1000 行的页面大小太大,即使在网格中显示 100 行,它也会向下滚动最多 10 次以获取最后一行,然后再移动到下一页。分页逻辑也在操作中实现,该操作使用数据库中可用数据内的投影来检索必要数量的数据以通过网格显示。
猜你喜欢
  • 2013-09-28
  • 1970-01-01
  • 2012-06-17
  • 2011-09-15
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
相关资源
最近更新 更多