高分求网页中城市控件的实现机制
http://www.ctrip.com/
城市搜索速度很快,数据在页面LOAD完以后加载全部数据的,请问怎么样才能让搜索速度如此快,用JS脚本搜索也不应该这么快吧
请大家给点思想1.数据加载机制?
2.数据搜索机制?

解决方案 »

  1.   

    感觉是简单的ajax
    因为数据量不是很大,所以快吧..
      

  2.   

    或者没去数据库查询,而是直接查询一个XML文件
      

  3.   

    肯定是用AJAX技术,可以这样考虑:客户端有一个数据容器,用来存放用户所搜索的数据,这个容器是累积的,每一次搜索时,先从客户端容器搜索,若没有,则去服务器端请求,然后把请求的数据添加到数据容器中.
      

  4.   

    不要轻易相信AJAX技术,我查看了一下是js写的,这个东西我不行,js内容已经下载到你本地了,所以感觉很快,是要比数据库操作要方便,关键是这些东西本来就是死了,
    不大会改变。
    $$.module.address.source.fltDomestic="@Akesu|阿克苏|AKU@Aletai|阿勒泰|AAT@Ankang|安康|AKA@Anqing|安庆|AQG@Anshun|安顺|AVA@Anting|安亭|594@Baise|百色|AEB@Baoshan|保山|BSD@Baotou|包头|BAV@Beihai|北海|BHY@Beijing|北京|BJS@Changchun|长春|CGQ@Changde|常德|CGD@Changdu|昌都|BPX@Changsha|长沙|CSX@Changzhi|长治|CIH@Changzhou|常州|CZX@Chaoyang|朝阳|CHG@Chengdu|成都|CTU@Chifeng|赤峰|CIF@Chongqing|重庆|CKG@Dali|大理|DLU@Dalian|大连|DLC@Dandong|丹东|DDG@Datong|大同|DAT@Daxian|达县|DAX@Dehong|德宏|LUM@Diqing|迪庆|DIG@Dongying|东营|DOY@Dunhuang|敦煌|DNH@Enshi|恩施|ENH@Fuyang|阜阳|FUG@Fuzhou|福州|FOC@Ganzhou|赣州|KOW@Geermu|格尔木|GOQ@Guanghan|广汉|GHN@Guanghua|光化|LHK@Guangzhou|广州|CAN@Guilin|桂林|KWL@Guiyang|贵阳|KWE@Haerbin|哈尔滨|HRB@Haikou|海口|HAK@Hailaer|海拉尔|HLD@Handan|邯郸|HDG@Hangzhou|杭州|HGH@Hanzhong|汉中|HZG@Hefei|合肥|HFE@Heihe|黑河|HEK@Hetian|和田|HTN@Hong Kong|香港|HKG@Huangshan|黄山|TXN@Huangyan|黄岩|HYN@Huhehaote|呼和浩特|HET@Jiamusi|佳木斯|JMU@Jiayuguan|嘉峪关|JGN@Jilin|吉林|JIL@Jinan|济南|TNA@Jingdezhen|景德镇|JDZ@Jinggangshan|井冈山|JGS@Jinghong|景洪|JHG@jinjiang|晋江|JJN@Jinzhou|锦州|JNZ@Jiujiang|九江|JIU@Jiuzhaigou|九寨沟|JZH@Kaohsiung|高雄|KHH@Kashi|喀什|KHG@Kelamayi|克拉玛依|KRY@Kuche|库车|KCA@Kuerle|库尔勒|KRL@Kunming|昆明|KMG@Lanzhou|兰州|LHW@Lasa|拉萨|LXA@LiangPing|梁平|LIA@Lianyungang|连云港|LYG@Lijiang|丽江|LJG@Lincang|临沧|LNJ@Linxi|林西|LXI@Linyi|临沂|LYI@Linzhi|林芝|LZY@LIPING|黎平|HZH@Liuzhou|柳州|LZH@LONGYAN|龙岩|LCX@Luoyang|洛阳|LYA@Luzhou|泸州|LZO@Macau|澳门|MFM@Mangshi|芒市|LUM@Manzhouli|满洲里|NZH@Meixian|梅县|MXZ@Mianyang|绵阳|MIG@Mudanjiang|牡丹江|MDG@Nanchang|南昌|KHN@Nanchong|南充|NAO@Nanjing|南京|NKG@Nanning|南宁|NNG@Nantong|南通|NTG@Nanyang|南阳|NNY@Ningbo|宁波|NGB@Panzhihua|攀枝花|PZI@Qingdao|青岛|TAO@Qingyang|庆阳|IQN@Qinhuangdao|秦皇岛|SHP@Qiqihaer|齐齐哈尔|NDG@Quanzhou|泉州|JJN@Quzhou|衢州|JUZ@Sanya|三亚|SYX@Shanghai|上海|SHA@Shantou|汕头|SWA@Shashi|沙市|SHS@Shenyang|沈阳|SHE@Shenzhen|深圳|SZX@Shijiazhuang|石家庄|SJW@Shishi|石狮|JJN@Simao|思茅|SYM@Tacheng|塔城|TCG@Taipei|台北|TPE@Taiyuan|太原|TYN@Tianjin|天津|TSN@Tongliao|通辽|TGO@Tongren|铜仁|TEN@Wanxian|万州|WXN@Weifang|潍坊|WEF@Weihai|威海|WEH@Wenshan|文山|WNH@Wenzhou|温州|WNZ@Wuhai|乌海|WUA@Wuhan|武汉|WUH@Wulanhaote|乌兰浩特|HLH@Wulumuqi|乌鲁木齐|URC@Wuxi|无锡|WUX@Wuyishan|武夷山|WUS@Xiamen|厦门|XMN@Xian|西安|SIA@Xiangfan|襄樊|XFN@Xianggelila|香格里拉|DIG@Xichang|西昌|XIC@Xilinhaote|锡林浩特|XIL@Xingyi|兴义|ACX@Xining|西宁|XNN@Xishuangbanna|西双版纳|JHG@Xuzhou|徐州|XUZ@Yanan|延安|ENY@Yancheng|盐城|YNZ@Yanji|延吉|YNJ@Yantai|烟台|YNT@Yibin|宜宾|YBP@Yichang|宜昌|YIH@Yinchuan|银川|INC@Yining|伊宁|YIN@Yiwu|义乌|YIW@Yongzhou|永州|LLF@Yulin|榆林|UYN@Yuncheng|运城|YCU@Zhangjiajie|张家界|DYG@Zhanjiang|湛江|ZHA@Zhaotong|昭通|ZAT@Zhengzhou|郑州|CGO@zhijiang|芷江|HJJ@Zhongdian|中甸|DIG@Zhoushan|舟山|HSN@Zhuhai|珠海|ZUH@Wuzhou|梧州|WUZ@Eerduosi|鄂尔多斯|DSN@Nalati|那拉提|NLT@";
      

  5.   

    不会写死啊,你可以建立数据库,使用aspx文件来读数据库,生成js数组的格式,然后使用<script>标签引入这个aspx文件就可以使用了给个简单例子给你看看
    js.aspx
    <%@ Page Language="C#"%>
    <%@ Import NameSpace="Sytem.Data.SqlClient"%>
    <%
    '===取数据,然后生成如下的格式的JS数组代码
    string JsArr="var Arr=new Array();";//声名一个js数组
    JsArr+="Arr.push('1');";//向数组中添加项
    JsArr+="Arr.push('2');";
    JsArr+="Arr.push('3');";
    JsArr+="Arr.push('4');";
    JsArr+="Arr.push('5');";
    //============输出js数组
    Response.Write(JsArr);
    %>test.htm
    <script type='text/javascript' src='js.aspx'></script><!----使用<script>标签引入aspx----->
    <script type='text/javascript'>
    //使用上面的aspx生成的js数组
    for(var i=0;i<Arr.length;i++)
      alert(Arr[i]);//输出数组项的值
    </script>
      

  6.   

    如果数据量不大可以考虑生成js数组
    如果很大的话可以使用autocomplete来完成,就是ajax了
      

  7.   

    自己看ie临时文件fltDomestic_gb2312[1].js
    ctrip是用的这个数据