分页是必要的吗?

时间:2011-03-18 00:09:38

标签: php pagination limit

分页重要吗?如果您有200个条目,会发生什么。对于使用它的人来说,它会减慢网站的速度吗?

很抱歉,如果这听起来像一个简单的问题,只是想知道,对游戏来说是新手。

由于

更新

阅读答案后。我认为使用它们很重要。那么我该如何使用限制搜索页面。不寻找一个奇特的解决方案..

5 个答案:

答案 0 :(得分:2)

良好的分页将帮助您减少向客户端提供的页面的重量以及数据库上的查询费用。 (因为你只需加载10或20个项而不是千个)。

当然,用户体验也非常重要。没有人想滚动好几天在网页上找东西。

答案 1 :(得分:2)

我认为存在比技术更大的心理障碍。大多数硬件能够非常快速地分页大量文本。但是,人们不太可能一直阅读一篇非常敏捷的文章。

一般来说,为了方便用户,将大量文本分成较小的部分是很好的做法 - 并提供全文下载。

此外,线条和间距的长度对于捕捉观众非常重要。我建议使用1.5em行间距,每行约15个字。

与印刷媒体不同 - 人们不太可能走到尽头 - 并找出谁是dunnit,如果他们不喜欢几段,他们就会保释。想象一下,读者的手指放在左侧按钮上,另一个放在滚轮上 - 就像你现在可能正在做的那样 - 只是渴望离开这个页面并阅读其他内容。

答案 2 :(得分:2)

将结果分解为多个页面,效率更高,速度更快,服务器更友好。

首先,大多数用户不会超越前X个结果,无论一个页面上有多少个,因此会有大量未使用的结果被检索,处理并发送到客户端。是浪费带宽和CPU时间。事实上,通过分页,如果它们全部放在一个页面上,你就会增加继续超出停止位置的可能性。

二,如果这只是文本数据,即使对于大量数据也会非常快,但如果你投入图片和必须为每个结果显示的东西,例如在目录中,那么事情真的开始减慢返回的结果越多。

SQL中的LIMIT分页是通过使用Limit范围完成的。当在SQL查询中为LIMIT提供单个参数时,它将返回到该结果量,因此SELECT * FROM table LIMIT 5将返回最多5个结果。当给出两个参数时,它会跳过结果,直到它到达第一个参数,然后返回到下一个结果数。因此,SELECT * FROM table LIMIT 40,10将从第41个结果开始返回最多10条记录。

所以,你需要的是告诉服务器客户端想要什么页面或结果的一些方法,通常这是通过分页链接完成的,例如:http://www.domain.com/search.php?p=4http://www.domain.com/search.php?r=40,你然后通过$ _GET使用该值来确定SQL查询中的限制。类似的东西(在这种情况下通过get传递页码):

<?php
$sql = "SELECT * FROM `table`"; //Set up initial query string

$max_per_page = 20;  //Max results per page, can be drawn from elsewhere/configuration file or something or declared directly
if(isset($_GET['p']))  //Check to see if $_GET['p'] is set
{
     $current_limit = abs((int)$_GET['p'] - 1) * $max_per_page;  //Current limit = max * (current page - 1) other wise, page 2 would have a starting point of 40 instead of 20 like it should.  When passing the result number to start on, you'd just use that instead
}
else
{
     $current_limit = 0;
}
$sql .= ' LIMIT ' . $current_limit . ', ' . $max_per_page;  //Construct LIMIT on end of query string
$result = mysql_fetch_assoc(mysql_query($sql));
?>

哦,要弄清楚总结果,你可以先用SELECT COUNT(*) FROM table WHERE etc. etc.类型语句开头,这样就可以知道总结果,可以用来确定需要多少页面,因为你知道最大值每页的结果。

答案 3 :(得分:1)

分页是必要的吗?要看。每当我编写任何从数据库中列出实体的页面时,我都会对它们进行一些分页(按需)。

但是,如果我要添加一个新的client,可能会有State?在这种情况下,显示所有状态的选择框将不会被分页。因为它易于用户阅读,而且通常不会加载大量数据。

但是对于更复杂和更大的查询,您始终必须设置限制并从数据库按需加载数据。所有软件都在成长。如果你没有分页,总有一天你会有一些头痛。

答案 4 :(得分:1)

它提供了更好的完成感,如果您正确使用它,可以更快地显示您希望用户看到的内容(最优惠的价格,最便宜的价格等)。在我看来,它会使他们的注意力也更好。