范例分析-showHint()函数当用户在上面的输入框中输入字符时,函数“showHint()”将被执行。此函数由“onkeyup”事件触发:functionshowHint(str){varxmlhttp;if(str.length==0){document.getElementById("txtHint").innerHTML="";返回;}if(window.XMLHttpRequest){//IE7+,Firefox,Chrome,Opera,Safari浏览器执行代码xmlhttp=newXMLHttpRequest();}else{//IE6、IE5浏览器执行代码xmlhttp=newActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","/try/ajax/gethint.php?q="+str,true);xmlhttp.send();}源码分析:如果输入框为空str.length==0,该函数清除txtHint占位符内容,并退出函数。如果输入框不为空,则showHint()函数执行以下任务:创建一个XMLHttpRequest对象当服务器响应准备就绪时执行该函数将请求发送到服务器上的文件注意我们在URL中添加了一个参数q(带有输入框的内容)AJAX服务器页面-ASP和PHP上述示例JavaScript调用的服务器页面是一个名为gethint.php的PHP文件。下面,我们创建了两个版本的服务器文件,一个用ASP编写,另一个用PHP编写。ASP文件“gethint.asp”中的源代码检查名称数组并将适当的名称返回给浏览器:<%response.expires=-1dima(30)'用名称填充数组sa(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"'从URL中获取q参数q=ucase(request.querystring("q"))'如果q的长度>0iflen(q)>0thenhint=""fori=1到30ifq=ucase(mid(a(i),1,len(q)))thenifhint=""thenhint=a(i)elsehint=hint&","&a(i)endifendifnextendif'如果没有找到提示则输出“无建议”'或者输出正确的值ifhint=""thenresponse.write("nosuggestion")elseresponse.write(hint)endif%>ThePHP文件中的以下代码使用CompiledinPHP,它与上面的ASP代码具有相同的效果0if(strlen($q)>0){$hint="";for($i=0;$i
