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",newArray("ajax","ajaxamsterdam","ajaxfc","ajaxontario","ajaxgrips","ajaxfootballclub","ajaxpubliclibrary","ajaxfootball","ajaxsoccer","ajaxpickeringtransit"),newArray("3,840,000results","502,000results","710,000results","275,000results","8,860results","573,000results","40,500results","454,000results","437,000results","10,700results"),newArray(""));


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

你可能感兴趣的:(Ajax,Google,脚本,vb,VB.NET)