一个简单的AJAX实例

本文介绍了一个使用 AJAX 技术实现的 HTML 输入提示功能。该功能通过客户端 JavaScript 在用户输入的同时请求服务器端数据,并实时更新建议列表。服务器端采用 ASP 和 VBS 脚本来响应请求并提供匹配项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AJAX HTML页面
  这是一个HTML网页。它包括了一个简单的HTML表单和关联JS的link
<html>
<head>
<script src="clienthint.js"></script>
</head><body><form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form><p>Suggestions: <span id="txtHint"></span></p> </body>
</html>The JavaScript code is listed below.
JS代码在下面

  AJAX 的 JS
  这是JS代码,被保存在"clienthint.js"文件中

var xmlHttp
function showHint(str)

if (str.length > 0)

var url="gethint.asp?sid=" + Math.random() + "&q=" + str
xmlHttp
=GetXmlHttpObject(stateChanged)
xmlHttp.open(
"GET", url , true)
xmlHttp.send(
null)
}
 
else

document.getElementById(
"txtHint").innerHTML=""
}
 
}
 
function stateChanged() 

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

document.getElementById(
"txtHint").innerHTML=xmlHttp.responseText 
}
 
}
 
function GetXmlHttpObject(handler)

var objXmlHttp=null
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert(
"This example doesnt work in Opera"
return
}

if (navigator.userAgent.indexOf("MSIE")>=0)

var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName
="Microsoft.XMLHTTP"
}
 
try

objXmlHttp
=new ActiveXObject(strName)
objXmlHttp.onreadystatechange
=handler 
return objXmlHttp
}
 
catch(e)

alert(
"Error. Scripting for ActiveX might be disabled"
return 
}
 
}
 
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp
=new XMLHttpRequest()
objXmlHttp.onload
=handler
objXmlHttp.onerror
=handler 
return objXmlHttp
}

}

  AJAX 服务端页面
  服务端页面被JS所调遣,是一名为"gethint.asp"的ASP文件,页面是用VBS来针对IIS所写的。它可以被轻松的写成PHP或是一些其他的服务语言,它只是检查了名字组并将相吻合的名字返回给客户端:
 

dim a(30)
a(
1)="Anna"
a(
2)="Brittany"
a(
3)="Cinderella"
a(
4)="Diana"
a(
5)="Eva"
a(
6)="Fiona"
a(
7)="Gunda"
a(
8)="Hege"
a(
9)="Inga"
a(
10)="Johanna"
a(
11)="Kitty"
a(
12)="Linda"
a(
13)="Nina"
a(
14)="Ophelia"
a(
15)="Petunia"
a(
16)="Amanda"
a(
17)="Raquel"
a(
18)="Cindy"
a(
19)="Doris"
a(
20)="Eve"
a(
21)="Evita"
a(
22)="Sunniva"
a(
23)="Tove"
a(
24)="Unni"
a(
25)="Violet"
a(
26)="Liza"
a(
27)="Elizabeth"
a(
28)="Ellen"
a(
29)="Wenche"
a(
30)="Vicky"
q
=request.querystring("q")if len(q)>0 then
  hint
=""
  
for i=1 to 30
    x1
=ucase(mid(q,1,len(q)))
    x2
=ucase(mid(a(i),1,len(q)))
    
if x1=x2 then
      
if hint="" then
        hint
=a(i)
      
else
        hint
=hint & " , " & a(i)
      
end if
    
end if
  
next
end if 
if hint="" then 
  response.write(
"no suggestion")
else
  response.write(hint)
end if 


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值