莫非google已经出了新技术不成,他的搜索提示竟然不是ajax实现的
   今天我深入的研究了一下google的搜索提示功能,输入关键词之后马上出现一个下拉框显示相关的关键词,按照惯性思维,这肯定是ajax实现的,不过使用firebug抓了一下发现他根本就不是ajax做的,因为抓不到任何请求.
   为了深入了解他们的思路,所以我把IE的缓存文件夹清空,然后用ie重新打开google,并输入关键词,此时会发现在ie缓存文件夹多了一个文件,这个文件是从google服务器写入到本机的json格式的js文件,这个文件来自
http://clients1.google.com/complete/search?client=hp&hl=zh-CN&cp=2&gs_id=3&q=关键词内容的json的格式为:window.google.ac.h(["关键词",[["关键词工具",0,"0"],["关键词",0,"1"],["关键词排名查询",0,"2"],["关键词密度查询",0,"3"],["关键词分析工具",0,"4"],["关键词查询",0,"5"],["关键词优化",0,"6"],["关键词分析",0,"7"],["关键词价格",0,"8"],["关键词过滤",0,"9"]],{"j":"3","k":1}])
而且每次我更换关键词之后ie的缓存文件夹下就会增加一个新的js文件,由此来看很像ajax的运作方式,可为什么firebug却抓不到任何请求呢?当然了,或许有人会说这可能是ajaj,但我不这么认为.好了,我只是抛砖引玉一下,留待更多高手来研究吧!

解决方案 »

  1.   

    你的firebug是不是有问题呀例如我输入一个“硬盘”,google就请求一个http://www.google.com.hk/complete/search?client=hp&hl=zh-CN&gs_is=1&cp=2&gs_id=f&q=%E7%A1%AC%E7%9B%98&xhr=tfirebug下看到的
      

  2.   

    晕,实践表明,LZ被你的firebug忽悠了确定会有请求:Date Fri, 12 Aug 2011 15:56:20 GMT
    Expires Fri, 12 Aug 2011 15:56:20 GMT
    Cache-Control private, max-age=3600
    Content-Type application/json; charset=UTF-8
    Content-Disposition attachment
    Content-Encoding gzip
    Server gws
    Content-Length 134
    X-XSS-Protection 1; mode=block
    Host www.google.com.hk
    User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18
    Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language zh-cn,zh;q=0.5
    Accept-Encoding gzip,deflate
    Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
    Keep-Alive 115
    Connection keep-alive
    Referer http://www.google.com.hk/webhp?client=aff-cs-360se-channel&channel=book
    Cookie PREF=ID=1e3a5fc21016e00d:U=a7f29caebd58f04e:FF=2:LD=zh-CN:NW=1:TM=1310040934:LM=1313164568:S=WPjKQo8PFHIdgKAX; NID=48=QtqxdprO_wzXvmn0rkX-K7jSHcoBMENP9oI4xUW5MBZdQpaqIHJVVqLohTetRYc3BhCgHs2k_Kxmk49iDh7XL_4X1kMwDCrEGD_-smSOHt7wVXGFaNQTIpB8UH8vhNhx
      

  3.   

    不会吧,我的firebug一直用着挺好的啊,怎么会这样呢?
      

  4.   

    我用的是firefox 5.0+firebug1.81
      

  5.   

    是你的Firebug出了问题吧。至于window.google.ac.h(["关键词"...);这种方式是为了支持跨域访问,俗称jsonp
      

  6.   

    firebug调代码可以万无一失 但google的东西不是单靠Firebug就能抓到一切 
    用个抓包工具 抓下包 看那里边有没有http报文 这个还是比较准的
      

  7.   

    2楼 3楼请问你们的firefox是什么版本,firebug是什么版本,为何我更换了firefox和firebug的版本还是不行呢
      

  8.   

    如果每次都生成一个json的文件,那不清空缓存的话,时间久了,提示效果就会没那么快了。
      

  9.   

    FireFOX,用这个浏览器干嘛,找抽不成