原题: www.ddhw.com 常去wxc论坛的人都知道,有许多论坛,当你翻到其最后一页时,发现没有信息,其实,不仅仅是最后一页,而是最后的好几页都是这种情况。也就是说,一个论坛,声称有比如说2345页,但是其实可能只有2312页,再往后面都是空白。不信你去试试看。我一直在想这个问题,同时也注意到顶顶没有这种情况发生。 为什么会出现这种错误? 解答: 不知道这里的朋友有没有认真地对待此题,有没有去wxc看看验证?很久前我就注意到这个问题,但是从没有认真地想过,后来当我认真地考虑这个问题的时候,觉得挺有意思。 这个问题的本质就是:如何根据网友发帖的数量(包括楼主贴与跟贴)来确定一共需要多少页。显然wxc程序员算错了(我估计他们应该也注意到这个问题,但是也许暂时没有办法解决) www.ddhw.com 在wxc,每一页至少有50行贴(包括跟贴),有时可能会多些。因为如果第49行是一个楼主的贴,而这个楼主的贴可能有10个跟贴,显然,这10个跟贴必须在这一页上,而不可能在下一页,所以就有可能每一页多于50行的情况。 这样,就产生了一个问题:你如何计算在中间的某一页的第一个贴是哪一个?在数据库里,所有的贴都在一起,即使是按照次序调出来,要计算在某个特定的页面上的第一个贴可能会有一定的难度(除了顶顶以外,我还没有见到过第二家能够正确计算页数的论坛,下面我有介绍)。我认为,wxc程序员在这里偷懒了,他们用了一个简单的办法:在估算页数时,只是简单的用“页数 = 总贴数/50”。而在实际的现实中,每一页可能会显示多于50贴,这样下来,就很有可能(几乎一定发生)实际的页数要少些。 那么其他网站是怎么解决这个问题的? 首先说顶顶,我具体不是很清楚是怎么解决的,但是我想绝对不会用最笨的方法,每次都扫描所有的贴,因为这样太慢,太蠢,消耗资源,也许这里有人能给出一个算法。 www.ddhw.com 万维,留园等网站等做法比较聪明,他们巧妙的绕过了这个问题,不告诉你一共有多少页,他们只是给出前10页的连接,再往下就是“下一页”地链接,所以,你就无法知道他们的论坛有多少页。 像倍可亲等网站,还有许多国内网站,他们的排列方式不同(在这里就是 更换显示方式 ),在论坛里,他们只显示楼主的贴而没有跟贴(只有当你打开楼主贴的时候,会同时显示跟贴内容),所以这种情况下计算相当简单,也不会出错。 不知道我上面有没有说清楚,欢迎各位提问 www.ddhw.com
|