请问在jsp页面怎样实现类似google搜索的下拉列表效率高?
现在我的做法是从数据库中首先检索出所有的数据,然后通过js把满足输入框中输入的内容的数据依次添加到下拉列表
现在有接近一万条数据,效率非常低,通常都要十几秒到半分钟的样子。
请问有好的方法实现这样的功能吗?
[b]问题补充:[/b]
[quote]
这样当然效率非常低,接近一万条数据,如果你分页为一面10个,那就有1000个option,你这样当然搞死浏览器了,我们以前也遇到过这种问题,你就应该只显示比如10个option,再加上一个“上10条”和“下10条”当用户选择的时候,再动态显示“上10条”或“下10条”来填充下拉列表,
当然还有一种就是有一个文本框让用户输入每几页,按ENTER时跳转之类的
[/quote]
非常可行,不过下拉框中能做出这样的分页效果?
那该怎么做呢?
我已经把主要的思路都告诉你了,具体实现当然就要靠自己去构思一下,
如果采用加上一个“上10条”和“下10条”当用户选择的时候,再动态显示“上10条”或“下10条”来填充下拉列表的话,
当然要给select加上onchange事件,当选中“上10条”时,用js重新动态构造10个option,它的value也相应的增加10嘛
如果使用一个文本框让用户输入每几页,按ENTER时跳转之类的
这种方式就比较容易一些,就监听键盘的ENTER键,当用户输入数字按ENTER后调服务去取数据再显示嘛
这样当然效率非常低,接近一万条数据,如果你分页为一面10个,那就有1000个option,你这样当然搞死浏览器了,我们以前也遇到过这种问题,你就应该只显示比如10个option,再加上一个“上10条”和“下10条”当用户选择的时候,再动态显示“上10条”或“下10条”来填充下拉列表,
当然还有一种就是有一个文本框让用户输入每几页,按ENTER时跳转之类的
你为啥不自己些个static的list然后吧数据库的信息放到里面呢?
查的时候查那个list的,我们的脏词都是些到List的里。
不过靠考虑到你的数据库的信息是否有下拉时效性!
我就做过类似的东西,我是用dwr做的,当然不可能第次把所有的都查出来,在sql语句中可以加 limit 0,10把前10条查出来,每次只显示10条这样会很快的,我们的项目已经在发布了很好用的,如果你有需要我可以把代码发给你
当然可以做出这样的效果,结合js和ajax很容易就能实现的