服务器和客户端分页究竟是什么?

服务器端分页是分页脚本计算数据库中的条目数然后建立链接的地方吗? 我所知道的是服务器端更快,更好,如果有很多数据和客户端使用JavaScript?

什么使分页脚本服务器或客户端?

另外,现在我正在计划使用这种类似digg风格的分页。 有人可以告诉我,如果这是服务器端分页? (对不起,如果我的术语关闭)


客户端是当你拉下所有的数据,然后客户端将数据分割成页面。

服务器端通常由客户端完成,该客户端提供一个传递给服务器的密钥,然后服务器仅选择出该数据的“页面”。 例如,如果您按姓氏显示人物,则可以通过告诉服务器您想要姓氏为'A'的人并且您希望返回10行来创建第一个页面。

服务器会执行如下操作:

SELECT ssn, fname, lname 
FROM people 
WHERE lname like 'a%' and rownum <= 10 ORDER BY lname, ssn;

如果最后一个/第10条记录的姓氏为'abbot',SSN为555555555,那么客户端可以检索下一页,然后将这些值传回服务器,然后服务器执行如下操作:

SELECT ssn, fname, lname 
FROM people 
WHERE lname >= 'abbot' and ssn > 555555555 and rownum <= 10 ORDER BY lname, ssn;

服务器端对于大量数据来说被认为是更好的,因为传输到客户端的数据量远远小于所有数据被客户端拉下并“分页”的情况。 它还降低了客户端所需的内存,并利用数据库的强大功能对数据进行排序或使用现有的排序索引来加速选择。


服务器端分页:

服务器从用户处获取许多参数(当前页面#,排序等),并执行任何需要的搜索以获取相关记录。 这些被发送给客户,连同更多页面的链接等。

用户每次点击链接时,都会刷新页面以显示新数据。

有用时:

  • 有很多结果,或者每个结果的有效载荷都相当大
  • 查找/处理结果非常耗时
  • 用户很少会经过第一页
  • 不是很好,因为:

  • 每次点击都是往返服务器,这可能需要一些时间
  • 维护状态是一个PITA
  • 客户端分页:

    服务器将所有可用记录发送到客户端,并使用Javascript将这些结果拆分为页面并呈现在客户端。 更改页面或项目顺序与即时一样好,并且不需要服务器交互。 这使得在服务器端缓存结果变得更加容易。

    有用时:

  • 没有多少结果(只有少数几页)
  • 用户将使用多个页面(因此发送额外的数据不是浪费)
  • 分割一个表单:因为每个输入页面只是被隐藏和不被删除,整个表单可以以一个表单提交。
  • 不是很好,因为:

  • 初始页面加载量要大得多
  • 没有JS的用户可能会导致问题(虽然优雅的降级是完全可能的)
  • 您可能需要将显示逻辑复制到Javascript中。
  • 混合的方法

    编写您的应用程序以充分利用服务器端分页。 一旦这是工作,使用JavaScript来拦截所有改变页面或排序的链接,并通过AJAX发送这些请求。 适应你的服务器端脚本,只返回任何给定页面所需的HTML,并且当它响应AJAX请求时,页面中没有任何页面会变形。

    优点:

  • 每个页面转弯的最小有效载荷=更快的响应时间。
  • 完全可扩展。
  • 完美降级。
  • 链接地址: http://www.djcxy.com/p/86163.html

    上一篇: What exactly is server and client side pagination?

    下一篇: side javascript clock with server date