项目名称:AJAX实现类Google Suggest效果
作者:草履虫
联系:caolvchong@gmail.com
时间:2007-7-7
起因:
建发实习面试时有提到这个问题,回来就考虑去实践一下,结果花了不少时间.主要是javascript在前台的表现问题,数据库结构设计等.网上有少数的几个dom教程,没有值得借鉴的地方,而<<征服Ajax web2.0开发技术详解>>中第16章 搜索提示(suggest)中那个例子实在是简陋(当然是说javascript表现部分),而且数据库用MSSQL,后台语言用JSP,和自己熟悉的格格不入(虽然都是以后要接触的),所以自己动手了.模仿效果:Google Suggest
开发平台:windows2003 IIS6.0 Access数据库
工具:DreamWeaver(写ASP),Aptana(写Javascript,HTML和CSS),Emeditor(写这篇文章),Access2003(数据库)
测试平台:Firefox2.0,IE6.0,IE7.0
原文地址:http://cceer.xmu.edu.cn/blog/post/googlesuggest.html
文件结构: index.htm:首页,展现效果, ajax_result.asp:ajax调用后台返回结果文件
result.asp:搜索结果文件,这个我并没有做,具体功能根据需求来写
数据库(suggest.mdb):
id:自动编号
keyword:关键字
seachtimes:被搜索次数
matchnum:匹配的文章数目(关于这个方面想了蛮久,如何取得文章数呢,不能是搜索时动态产生,不然在偌大数据库中查询费时费力.那么必然是在后台某个时候去其他的数据库表中添加的,原来想把这方面也做了,但限于算法的不成熟和时间的限制.所以就用了随机数来替换.)
开发过程遇到问题:
1.CSS方面:遇到了IE双倍浮动边界Bug(float:left下的margin-left是设置的两倍,用display:inline消除)
2.javascript方面:
一个是那个全局变量j的上下界问题着实让我乱了一会,还好理清了思路;按键事件的兼容性问题:IE的keyCode,其他浏览器的which事件;onkeypress和onkeyup,onkeydown事件的区别:onkeypress只接受数字和字母,不接受系统按键(如上下方向键)
使用submit()方法时不能定义某个标签的id或name为submit,不然将提示缺少对象。 还有一些细节判断问题,也让我费了不少神。
3.html方面:
如何让表单不记忆(在firefox下自动记忆会挡主ajax部分,而google中就没有这样的提示功能,所以去掉了表单记忆功能),只要在form中加一个autocomplete="off"
补充:
和google suggest还有一些差距,比如一直按着方向键问题和其他细节问题,这些都有待改进.
演示效果图:
主要js代码,suggest.js:
var j=-1;
var temp_str;
var $=function(node){
return document.getElementById(node);
}
var $$=function(node){
return document.getElementsByTagName(node);
}
function ajax_keyword(){
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
var data=xmlhttp.responseText;
$("suggest").innerHTML=data;
j=-1;
}
}
}
xmlhttp.open("post", "ajax_result.asp", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("keyword="+escape($("keyword").value));
}
function keyupdeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc!=40 && keyc!=38){
ajax_keyword();
temp_str=$("keyword").value;
}
}
function set_style(num){
for(var i=0;i<$$("li").length;i++){
var li_node=$$("li")[i];
li_node.className="";
}
if(j>=0 && j<$$("li").length){
var i_node=$$("li")[j];
$$("li")[j].className="select";
}
}
function mo(nodevalue){
j=nodevalue;
set_style(j);
}
function form_submit(){
if(j>=0 && j<$$("li").length){
$$("input")[0].value=$$("li")[j].childNodes[0].nodeValue;
}
document.search.submit();
}
function hide_suggest(){
var nodes=document.body.childNodes
for(var i=0;i<NODES.LENGTH;I++){ if(j j++; if(j<$$(?li?).length){ if(keyc="=40" keyc="e.keyCode;" || } if(e.which){ else if(window.event){ keyc; var keydowndeal(e){ function ; $(?suggest?).innerHTML="" if(nodes[i]!='$("keyword")){'>=$$("li").length){
j=-1;
}
}
if(j>=$$("li").length){
j=-1;
}
}
if(keyc==38){
if(j>=0){
j--;
if(j<=-1){
j=$$("li").length;
}
}
else{
j=$$("li").length-1;
}
}
set_style(j);
if(j>=0 && j<$$("li").length){
$("keyword").value=$$("li")[j].childNodes[0].nodeValue;
}
else{
$("keyword").value=temp_str;
}
}
}
分享到:
相关推荐
AJAX实现类Google Suggest效果 *测试平台:Firefox2.0,IE6.0,IE7.0 *演示地址:http://www.okajax.com/demo/suggest/ *:文件结构: index.htm:首页,展现效果 ajax_result.asp:ajax调用后台返回结果文件 result.asp:...
【标题】"仿Google Suggest提示效果"是一个关于在网页中实现类似Google搜索框自动提示功能的技术分享。这种功能在现代网页应用中非常常见,它能够提升用户体验,帮助用户更快地找到他们想要输入的关键词。 【描述】...
本教程将详细讲解如何实现一个仿GoogleSuggest的自动补全功能,旨在提供一个绝对实用的解决方案。 首先,理解GoogleSuggest的工作原理至关重要。它基于用户在搜索框中输入的字符,实时从服务器端获取并展示可能的...
【标题】:Google Suggest 实现 AJAX 应用 在当今的Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于创建交互性更强、用户体验更佳的网页应用。本主题主要聚焦于如何使用ASP.NET框架实现一个...
在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分...在提供的`GoogleSuggest`文件中,可能包含了示例代码或者更具体的实现细节,你可以参考这些内容进一步完善你的功能。
servlet+ajax搜索提示。 仿Google Suggest,使用ajax技术实现动态获取搜索提示的功能,当输入搜索关键字时,自动向服务器发送请求,查询相关的关键字,并及时提示用户可输入的关键字。
综上所述,"jsp+ajax实现googleSuggest(全)"项目涵盖了JSP、AJAX以及前端交互设计等多个技术点,通过它们的结合,可以实现类似Google搜索框的智能提示功能,提升用户体验。在实际开发中,还需要考虑性能优化、错误...
【简易Google Suggest搜索提示】是一种基于JavaScript实现的搜索引擎优化技术,它允许用户在输入查询时获取实时的搜索建议。这种技术提高了用户体验,因为它减少了用户输入完整查询词的时间,同时也帮助用户更快地...
Ajax Suggest是一个功能强大的JavaScript框架,它允许开发者创建类似Google搜索提示的效果,即在用户输入关键词时,自动显示与输入匹配的相关建议。这种实时的交互性增强了用户体验,减少了用户寻找和输入完整信息的...
总之,"GoogleSuggest ajax自动补全"是一个使用AJAX和jQuery实现的搜索建议功能,它通过与Google的搜索建议API交互,为用户提供实时的搜索提示。提供的源代码可以帮助开发者深入了解这一功能的工作原理,并在其自己...
**Ajax仿Google搜索提示ASP+Access数据库版** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。Google Suggest是Google搜索引擎中的一个特性,它会在用户输入...
标题中的“suggest 仿google提示”指的是创建一个类似于Google搜索框自动补全的功能。这个功能在用户输入查询词时,会根据已有的数据提供相关的建议,以提高搜索效率和用户体验。这种技术通常被称为自动完成功能或者...
标题中的“类似Google Suggest的搜索提示框”指的是在用户输入搜索关键词时,搜索引擎自动提供相关的建议词或短语,这种功能在许多网站上被广泛采用,以提高用户体验和搜索效率。Google Suggest是谷歌在其搜索框中...
在本篇博客“jQuery学习记录----仿GoogleSuggest自动提示(八)”中,作者分享了如何使用jQuery实现一个类似于Google搜索框中的自动提示功能。这个功能是许多网站上常见的用户体验提升工具,它允许用户在输入关键词...
Google Suggest正是利用了Ajax的核心特性,实现了在用户输入搜索关键词时,实时向服务器发送请求,获取相关建议,并在页面上动态展示。 在Google Suggest中,用户在搜索框中输入字符时,触发`onkeyup`事件,这是一...
以上就是使用Ajax实现仿Google信息提示的基本步骤。通过这种方式,我们可以实时地为用户提供搜索建议,提高用户在网站上的操作效率,提升整体的交互体验。在实际应用中,还可以根据需求进行更复杂的优化,比如添加...
在压缩包文件"简易Google Suggest搜索提示"中,可能包含了实现这一功能的源代码和示例数据。通过学习和理解这些代码,开发者可以为自己的网站或应用构建类似的搜索提示功能,提升用户的搜索体验。这涉及到前端的Ajax...
"仿google的搜索"是一个基于Ajax和Lucene技术的搜索功能实现,旨在提供与Google类似的实时搜索体验。在Google搜索中,用户在输入框中键入关键词时,系统会即时显示相关的搜索建议,这种功能极大地提高了用户的搜索...
ajax实现输入提示(类似百度和Google的输入提示) 用法非常简单: 1、在jsp页面引入autosuggest.js文件 2、建一个text文本框 3、写js代码: <script> new actb("tb", loadAllMessage("suggest" , ""), null); 4、这...