比如我有200条数据,一页10条数据,20页
用户可以通过下一页,上一页进行翻页现在的需求是用户要对这200条数据中的部分或全部数据重新排序,排序时页面第一条数据上移要转到上一页的最后一条数据
要求:尽量少的操作数据库(比如,同一页数据的上移,下移可以用js实现等)
      支持翻页排序,方便最后一页的数据可以很快排序到第一页,然后再一个个微调不知道有没有朋友有过这方面的经验?或者给个具体思路?

解决方案 »

  1.   

    这么多的分,这么难的题,不顶吃亏呀。小声说一句,现在很时髦的ajax(写的对吗?)不能解决这个问题吗?如果可以用它做出来,然后把js copy出来就可了。
      

  2.   

    用JAVASCRIPT实现吧,在网页实现排序,很容易实现的
      

  3.   

    数据最终肯定要更新数据库的一次全取出来或一次读一页都可以,不过一次全取出来可能效率更高些javashhai31思路不错,不过对容器的操作效率不如js的直接操作:
    首先浏览器要将post消息,传给webserver,webserver再传给CGI程序,CGI程序对结构重新排列数据后,还要构造html页面,再通过webserver将消息传给浏览器
    很长的一个流程,如果频繁操作速度肯定不快
      

  4.   

    你的意思是实时更新?即客户的每一个操作都要提交么?
    如果这样的话,建议使用ajax,当局部更新时不会刷新整个页面,ajax本身就是js
    126信箱就是这么做的,你可以参考一下,不过使用ajax会提高访问量,对服务器和数据库都会产生更大的压力。
      

  5.   

    数据库的数据不需要实时更新,页面需要实时更新,这样用户才能看到效果,ajax技术不考虑
      

  6.   

    1 提取数据 提取持久化数据
    2 包管数据 把持久化数据放入会话如session中(如果是C/S结构,则放入内存),在java里可以把持久化数据放入ArrayList类型的对象中,再把这个ArrayList放进会话
    3 显示数据 客户端view层显示会话中的数据
    4 更新数据 客户端动态修改会话中指定数据
      

  7.   

    给你一个思路,一定行得通,以前本人用过,便要求你会, XSLT, XPATH, XML DOM操作,思想如下:1. 页面下载时,将200条数据一次性通过XML加载,你如:
    <xml id="dataxml">
    <record id="1" field1="" field2="" ... fieldN=""/>
    <record id="2" field1="" field2="" ... fieldN=""/>
    <record id="3" field1="" field2="" ... fieldN=""/>
    ......
    <record id="N" field1="" field2="" ... fieldN=""/>
    </xml>
    其中id不是数据库中对应的字段,主要是用于client中标识一个记录行,也可以是表的主键值.2.写个js的函数,这个函数将根据调用参数(通常是字段或几个字段的组合)调用XSLT对xml进行排序,并从排序后的XML取调用参数中指定范围(例发1-10, 11-20,....,)的行并利用xslt template生成表格.
      

  8.   

    补允一下,本用试后,1.在Client cache 万行以上的数据不存在任何问题
    2.然后由如上cache中按条件排序并生成表格(1000内)时间不到1秒.
      

  9.   

    我是用cgi方式,用户看到的是html页面,html页面里可以用session吗?
      

  10.   

    浏览器不支持xml,因为是在嵌入式设备中,所以限制很多家里用过dvb的,应该知道有一个频道排序功能,我要的效果就是那样现在条件限制的很死,cgi方式实现,客户端html页面
      

  11.   

    dvb中是用c实现的,现在我们项目根据条件要求是html网页实现
      

  12.   

    一次把你要读的数据读完,排序后在 show ,此种操作不适合海量数据库。
    select top 10000 * /或([],[],[] ....) from table order by (columns)