我正在使用jsp,servlet和java开发基于SAS的系统。我很困惑使用客户端分页(一次性获得所有结果)或使用服务器端(每次点击)。
如果我使用客户端分页,那么有多少数据是o.k.什么是实现分页的最佳方式,如javascript,ajax,jquery等。
答案 0 :(得分:2)
我认为基于js / jquery的Ajax分页对数据提取很有帮助。您需要考虑是否需要排序。我在7个月前实现了基于jQuery的分页,那时由于数据太多,分页几乎变得非常慢(每页1000行10行)。因此,请确保您实现基于Ajax的分页。
我用过这个:http://tablesorter.com/docs/
并且:http://tablesorter.com/docs/example-ajax.html
另外,有用的链接:
http://www.xarg.org/2011/09/jquery-pagination-revised/
P.S。 - 对分页实现的语法和类非常小心。一个拼写错误,你可能会陷入困境。
额外信息:如果您正在考虑使用其他语言,请尝试使用Ruby on Rails。您可以使用will_paginate
或Kaminari gem来简单实现分页。
答案 1 :(得分:2)
这实际上取决于您的数据量以及用户在其会话中加载该页面的概率。 如果数据集限制为最大100 *行左右,并且每个记录的列数较少,那么您可以选择客户端分页。但是,如果数据集的最大值未知或者它将逐渐增长,那么最好选择服务器端分页。 使用jQuery的Ajax绝对是可行的方法。每个jQuery网格插件都有自己的分页机制,但基本逻辑类似:
maxResults
和currentPage
作为参数,以及其他参数。maxResults
号。行和第一行从(currentPage -1) * pageSize
我一直在使用jQgrid,并且发现它有很好的文档记录并且易于实现。 实用帖子: https://stackoverflow.com/questions/159025/jquery-grid-recommendations
注意:* 100只是一个例子,不要从字面上理解它:)
答案 2 :(得分:1)
我当然会考虑服务器端分页和客户端分页的组合。 返回1000(或10000+)行数据是没有意义的,如果您要做的就是一次显示10。
如果您要在网格中显示数据,那么我建议您查看Datatables.net。它们有一些很棒的examples,包括pagination和pipelining your data from the server(即返回比实际显示的记录多一些的记录,因此您可以减少检索更多数据的次数。)