需求描述:
有一个类别的下拉列表,下拉列表的内容取决于画面上显示的记录的多少
例如:画面上有100条记录,各自归属11个种别,那下拉列表的选择项就应该是这11个种别
问题:显示的记录条数是从数据库里检索出的
      类别的下拉列表的内容是拿同样的条件去数据库重新取一次(DISTINCT保持类别的唯一)比较好
      还是直接在Action内用已经检索出的数据For循环一下甄别比较好呢?
      
      希望能说出一定的理由

解决方案 »

  1.   

    在客户端用 JavaScript 组成下拉框
      

  2.   


    谢谢,我问的不是下拉框怎么做
    而是怎样获取数据消耗比较少用JS也得有数据来源啊,这个数据来源是重新连接DB获取呢,还是通过java的For循环对已有的List进行甄别来获取呢?两者哪个更加好一些?
      

  3.   


    换做我一般是调用service层的逻辑方法去数据库获取个数。这个能够有效利用数据库的特性,比如索引等,速度快。假如你一万条或者十几万条记录(当然,你会分页显示),你再在结果集中去遍历甄别,效率可想而知。 从数据的源头着手来处理是常规的较好的做法。
      

  4.   

    你说的循环也行,
    更省事的是可以让javascipt去完成这个循环,
    这样可以把计算推给客户端,
    多多少少减轻一些服务器的负担。不过减少的量可以忽略不计。哈哈good luck
      

  5.   

    我的理解是这样的
    楼主是想根据页面的记录数,得到他们所属的类别(也就是下拉列表的内容)
    楼主可以先得到所有类别,传到页面用JavaScript处理在下拉列表的显示的时候做个条件判断(没有记录的类别不显示)要尽量减少访问数据库的次数