首页  |  IT相关文档  |  工具软件  |  网站建设  |  程式开发  |  图形设计  |  操作系统  |  服务器类  |  数据库类  |  网络安全  |  网络技术  |  计算机应用  |  站长之家  |  网络游戏
 

热点文章

IT动态

·淘宝与日本雅虎强强联合推出跨国交
·2010年电子书迎来黄金年
·雅虎持巨资对抗谷歌推广
·从BT站点关闭到恢复看待网站转型
·微软Docs.com平台今日正式上线
·谷歌第一季度疯狂收购10家公司
·百度即将推出PC端输入法
·IE市场份额首次跌破60%
·赛迪澄清虚假上市公告
·Opera针对漏洞发布Win/Mac平台10.5
·看待google展示光纤速度
·站长应该抓住有效的长尾机会

GG搜索更多相关
 
当前位置:主页>程式开发>Ajax教程>

用AJAX技术做Google Suggest效果

来源: 作者: 发布时间:2009-10-28

*项目名称: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://finish.3322.org/suggest/index.htm(短期有效,在本机上,可能访问不顺畅)
*:文件结构:
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,其他的去附件下载:
草履虫--仿googlesuggest.rar
首页:index.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>新华IT网---www.xhit.cn </title>
<link type="text/css" rel="stylesheet" href="suggest.css"/>
<script type="text/javascript" src="suggest.js"></script>
</head>
<body onclick="hide_suggest();">
<img src="suggest.gif" onclick="hide_suggest();" />
<form action="result.asp" method="post" name="search" autocomplete="off">
<!--input type="text" name="keyword" id="keyword" onkeyup="keydeal(event);" onclick="keydeal(event);"/-->
<input type="text" name="keyword" id="keyword" onkeyup="keyupdeal(event);" onkeydown="keydowndeal(event);" onclick="keyupdeal(event);"/>
<input type="submit" value="手气不错"/>
<div id="suggest"></div>
</form>
</body>
</html>
suggest.js view plaincopy to clipboardprint?
var j=-1;
var temp_str;

共2页: 上一页 1 [2] 下一页
评论 | 收藏 | | 打印 | 关闭
相关链接
     
 

Copyright 2006-2007 xhit.cn All Rights Reserved
有什么建议或意见请发信到admin@xhit.cn 皖ICP备07007336