Topic: web分页方案!

  Print this page

1.web分页方案! Copy to clipboard
Posted by: worldeye
Posted on: 2003-03-24 20:29

1:一次将数据库中表的数据下载到客户端,在客户端分页。
好处:响应速度快;且,在表的记录不是很多的情况下,节省频繁访问数据库的资源。
缺点:如果,如果数据库的记录很多,一次下载到客户端,很不现实,且,用户可能并不希望看到所有的记录。
2:每次显示一页,每页显示10条记录,要看下10条记录,需要再次访问数据库。好处和缺点一样明显。多次访问了数据库。
3:折中的方法。
在客户端下载10页的10条记录(共100条记录),要看第十一页的10条记录,必须,再次访问数据库,再下载100条。

我还有个问题:就是在两次访问数据库的之间,如果,数据库有所变化,则不能同步数据库。说得明白点,就是,第一个人第一次访问前100条记录,如果,这时,第二人访问数据库,增加了100条记录(而且,很巧,正好就是在刚才被访问的那100条记录前面增加的),这时,第一个第二次访问数据,这次,他希望访问的是第101条到200条记录,不过,很不幸,这次,他又访问到了第一次访问的记录。
呵呵,以上是自己的一点想法,不知道,大家在处理分页的时候,是怎么考虑的。呵呵
欢迎指正。

2.Re:web分页方案! [Re: worldeye] Copy to clipboard
Posted by: gunrose
Posted on: 2003-03-25 13:11

一点改进:
如果数量不是太多的话,把PK先取出,放进session,当后面要显示数据时,根据你提供的一部分PK list去数据库取数据。

好处是,PK比数据本身要少好多空间,不会占用session的太多内存。

当数据太多时,按你的第3种方式,只取部分PK。

至于中途有数据变动的问题,要看你的客户要求,有的客户不想管别人有没有动过,可是有的客户就是要实时数据。不同的情况要不同对待。

3.Re:web分页方案! [Re: worldeye] Copy to clipboard
Posted by: Julian13
Posted on: 2003-03-26 01:45

what if need to consider the sorting order as well?

storing PK only work very well if the ordering is remain unchange. i used to do the re-ordering/sorting via another database select but faced a performance overhead.

don't know anyone doing similar thing in different ways?

4.Re:web分页方案! [Re: worldeye] Copy to clipboard
Posted by: flytiger
Posted on: 2003-03-26 08:36

worldeye wrote:
我还有个问题:就是在两次访问数据库的之间,如果,数据库有所变化,则不能同步数据库。说得明白点,就是,第一个人第一次访问前100条记录,如果,这时,第二人访问数据库,增加了100条记录(而且,很巧,正好就是在刚才被访问的那100条记录前面增加的),这时,第一个第二次访问数据,这次,他希望访问的是第101条到200条记录,不过,很不幸,这次,他又访问到了第一次访问的记录。
呵呵,以上是自己的一点想法,不知道,大家在处理分页的时候,是怎么考虑的。呵呵
欢迎指正。


why don't you query the tableMoon by excluding those data already viewed by client?
For example, in oracle, you can remember the rowid (physical position of a record) each time, right?

If you require to use ordered query, why don't you have a sequence linked to a field that can make the problem easier?

5.Re:web分页方案! [Re: flytiger] Copy to clipboard
Posted by: Julian13
Posted on: 2003-03-26 11:34

flytiger wrote:
... If you require to use ordered query, why don't you have a sequence linked to a field that can make the problem easier? ...


do you mean create a sequence link for each fields of the records?
um... seems a workable solution to me ^.^
thx

6.Re:web分页方案! [Re: gunrose] Copy to clipboard
Posted by: coolwoo
Posted on: 2003-03-26 15:56

gunrose wrote:
一点改进:
如果数量不是太多的话,把PK先取出,放进session,当后面要显示数据时,根据你提供的一部分PK list去数据库取数据。

好处是,PK比数据本身要少好多空间,不会占用session的太多内存。

当数据太多时,按你的第3种方式,只取部分PK。

至于中途有数据变动的问题,要看你的客户要求,有的客户不想管别人有没有动过,可是有的客户就是要实时数据。不同的情况要不同对待。


这叫半连接。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923