AJAX案例研究之google suggest

原文发表在 http://www.blogjava.net/emu/archive/2005/11/29/21786.html

google suggest 比起gmail要好对付的多了,就一个页面一个脚本文件,代码都一目了然,可惜用了google域名,在调的时候经常连接被断掉,最后还是找了一个代理才调通了代码。可以在本地运行的google suggest请在这个连接下载:

http://www.blogjava.net/Files/emu/suggest.rar


其中的脚本文件ac.js已经做了一点整理,关键的qc函数crack了一下,使它可以找到服务器:


function qc(ac){
    
if(l&&l.readyState!=0){
        l.abort()
    }
    l
=vb();
    
if(l){
        l.open(
"GET","http://www.google.com"+Aa+"&js=true&qu="+ac,true);
        l.onreadystatechange
=function(){
            
if(l.readyState==4&&l.responseText){
                
if(l.responseText.charAt(0)=="<"){
                    V
--
                }
else{
                eval(l.responseText)
                }
            }
        };
        l.send(
null)
    }
}

插个断点就可以看到,比如我们在输入框中输入了“AJAX”,google suggest就向服务器请求这样一个资源:

http://www.google.com/complete/search?hl=en&js=true&qu=AJAX

而服务器则返回:

sendRPCDone(frameElement, "ajax", new Array("ajax", "ajax amsterdam", "ajax fc", "ajax ontario", "ajax grips", "ajax football club", "ajax public library", "ajax football", "ajax soccer", "ajax pickering transit"), new Array("3,840,000 results", "502,000 results", "710,000 results", "275,000 results", "8,860 results", "573,000 results", "40,500 results", "454,000 results", "437,000 results", "10,700 results"), new Array(""));


剩下的大家都会做了,不多废话。

posted @ 2005-11-29 10:34  emu  阅读(142)  评论(0编辑  收藏  举报