最近做一个项目,用到自动完成的功能,就是google那种,用户输入一两个字符,就把能匹配的记录显示出来,用户可以直接选择,这里就不多废话了。我的项目中,所有的记录就是2000个,不用到数据库中查询,这2000个是永远不变的,我们希望加入ajax的自动完成效果,所以用js是必须滴~在网上找了很多例子,在2000个中进行检索,效率都很低,或者说非常低,最后找到这个,还不错http://www.never-online.net/code/neverModules/autocomplete/speed.html但是这个项目中不支持 返回id,比较 郁闷。在此特问下前辈们解决方案,2000个,能否存在数组里面进行筛选呢,或者整个xml文件,事先加载进来撒?可行不?
数据有三个列,编码,名称,拼音码,我想用户输入名称或者拼音码都可以进行检索,选择后可以返回编码和名称。只有至少输入一个字符时才显示,为空时显示2000个不友好。试了很多效率太差了,nnd,特在此和大家交流下~~

解决方案 »

  1.   

    1、把2000个全部加载到html里,比如生成js数组
       在文本框onkeydown且长度大于0时,检索这个数组;
    这个速度依赖于客户端的机器(一般比较快,现在没人用586吧)2、在文本框onkeydown且长度大于0时,通过ajax去服务器实时检索
    这个不会增加html的大小,如果网速足够快(比如局域网),那速度很快
    但是网速慢就不好说了。
      

  2.   

    返回什么是你自己写触发事件,分析数据,返回(可以返回json,也可以返回对象啊)
      

  3.   

    肯定是加载到本地,不要ajax去服务器上动态取数比较好,但是筛选的算法,是个大问题呢