服务器端分页是分页脚本计算数据库中的条目数然后创建链接的吗? 我所知道的是,如果有大量数据且客户端使用javascript,服务器端会更快更好吗?
分页脚本服务器或客户端是什么?
此外,我现在正计划使用类似于digg风格的this pagination。有人能告诉我这是服务器端分页吗? (对不起,如果我的术语已经关闭)
答案 0 :(得分:8)
服务器端分页:
服务器从用户那里获取许多参数(当前页面#,订购等),并执行获取相关记录所需的任何搜索。它们被发送到客户端,以及指向更多页面的链接等。
每次用户点击链接时,您都会看到显示新数据的页面刷新。
有用的时候:
不太好,因为:
客户端分页:
服务器将所有可用记录发送到客户端,并使用Javascript将这些结果拆分为页面并呈现给客户端。更改页面或项目排序与即时一样好,并且不需要服务器交互。这使得在服务器端缓存结果变得更加容易。
有用的时候:
不太好,因为:
混合方法
编写应用程序以完全使用服务器端分页。一旦工作,使用javascript拦截更改页面或排序的所有链接,并通过AJAX发送这些请求。调整服务器端脚本以仅返回任何给定页面所需的HTML,并且在响应AJAX请求时不会覆盖它周围的页面。
好处:
答案 1 :(得分:5)
客户端是指您向下拉所有数据然后客户端将数据分段为页面。
服务器端通常由客户端完成,该客户端提供传递给服务器的密钥,然后服务器仅选择该数据的“页面”。例如,如果您按姓氏显示人员,则可以通过告知服务器您希望姓氏为“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;
对于大型数据集,服务器端被认为更好,因为传输到客户端的数据量远小于所有数据被客户端下拉和“分页”的情况。它还降低了客户端所需的内存,并利用数据库的强大功能对数据进行排序或使用现有的排序索引来加速选择。