AJAX案例研究之google suggest
2009-07-03 22:38
316 查看
Google Suggest
Google有个Google Suggest的网站。当人们在搜索文本框中输入所要查询关键词的时候,Google会自动给出一些关键词的建议。从内容上看,它实际上和百度的相关搜索一样。不过在界面上却很不同,百度的相关搜索时罗列搜索结果页面的下方。而Google的相关搜索建议确是实时显示在输入文本框下,随着输入的不同给出的提示也不同。只显示10条,同时显示的还有这些关键词搜过结果的数目。
界面的不同带来的是使用行为的不同。在百度,人们必须先查找一个,然后才能看到与此相关的关键词,这对网站本身来说能够增加访问量,可是对用户来说却是繁琐的事情。Google的Suggest就不同了,在搜索以前就得到建议。在此功能的帮助页面上,Google指出所提示的关键词并不基于浏览器本地的历史记录,而是建立在人们搜索的统计结果的处理上。
AJAX实现google suggest
google suggest 比起gmail要好对付的多了,就一个页面一个脚本文件,代码都一目了然,在调的时候经常连接被断掉,最后还是找了一个代理才调通了代码。可以在本地运行的google suggest
请在这个连接下载:http://www.blogjava.net/Files/emu/suggest.rar
其中的脚本文件ac.js已经做了一点整理,关键的qc函数crack了一下,使它可以找到服务器:
functionqc(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(""));
剩下的大家都会做了,不多废话。
Google有个Google Suggest的网站。当人们在搜索文本框中输入所要查询关键词的时候,Google会自动给出一些关键词的建议。从内容上看,它实际上和百度的相关搜索一样。不过在界面上却很不同,百度的相关搜索时罗列搜索结果页面的下方。而Google的相关搜索建议确是实时显示在输入文本框下,随着输入的不同给出的提示也不同。只显示10条,同时显示的还有这些关键词搜过结果的数目。
界面的不同带来的是使用行为的不同。在百度,人们必须先查找一个,然后才能看到与此相关的关键词,这对网站本身来说能够增加访问量,可是对用户来说却是繁琐的事情。Google的Suggest就不同了,在搜索以前就得到建议。在此功能的帮助页面上,Google指出所提示的关键词并不基于浏览器本地的历史记录,而是建立在人们搜索的统计结果的处理上。
AJAX实现google suggest
google suggest 比起gmail要好对付的多了,就一个页面一个脚本文件,代码都一目了然,在调的时候经常连接被断掉,最后还是找了一个代理才调通了代码。可以在本地运行的google suggest
请在这个连接下载:http://www.blogjava.net/Files/emu/suggest.rar
其中的脚本文件ac.js已经做了一点整理,关键的qc函数crack了一下,使它可以找到服务器:
functionqc(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 suggest
- AJAX案例研究之 google reader
- AJAX案例研究之Gmail
- AJAX案例研究之Gmail (转)
- AJAX案例之google suggest
- Ajax技术案例分析__AJAX案例研究之Gmail
- AJAX案例研究之Gmail
- AJAX跨域请求数据原理与案例
- Ajax(javascript)案例
- 微软采用 Visual Studio 2005 Team System 进行集成软件开发 ---技术案例研究
- Coursera吴恩达《卷积神经网络》课程笔记(2)-- 深度卷积模型:案例研究
- Jquery版Ajax利用JSONP 跨域POST/GET传输数据研究
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
- 2015.7.3, 杭州……产品级敏捷案例研究
- zepto源码研究 - ajax.js($.ajax具体流程分析)
- 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之一
- 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之二
- Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE