首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

AJAX高级学习(一)——AJAX 请求实例

2012-11-23 
AJAX高级学习(1)——AJAX 请求实例?我们已看到 AJAX 可被用来创建更多交互性的应用程序。———————————————————

AJAX高级学习(1)——AJAX 请求实例

?

我们已看到 AJAX 可被用来创建更多交互性的应用程序。

————————————————————————AJAX Suggest实例
在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通信。————————————————————————在下面的文本框中输入名字:First Name:

Suggestions:

————————————————————————

?

例子解释 - HTML表单

表单的 HTML 代码:

?

<form> First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" /></form><p>Suggestions: <span id="txtHint"></span></p> 
?正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。

?

?

表单下面的段落包含了一个名为 "txtHint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。

?

当用户输入数据时,名为 "showHint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用。


————————————————————————例子解释 - showHint() 函数showHint() 函数是一个位于 HTML 页面 head 部分的很简单的 JavaScript 函数。此函数包含以下代码:
function showHint(str){  if (str.length==0)    {     document.getElementById("txtHint").innerHTML="";    return;    }  xmlHttp=GetXmlHttpObject()    if (xmlHttp==null)    {    alert ("您的浏览器不支持AJAX!");    return;    }var url="gethint.asp";url=url+"?q="+str;url=url+"&sid="+Math.random();xmlHttp.onreadystatechange=stateChanged;xmlHttp.open("GET",url,true);xmlHttp.send(null);}
?每当有字符输入文本框时,此函数就会执行。
假如文本域中存在某些输入,函数就会执行:
定义回传数据的服务器的 url(文件名)?使用文本框的内容向 url 添加参数(q)?添加一个随机的数字,以防止服务器使用某个已缓存的文件?创建一个 XMLHTTP 对象,并告知此对象当某个改变被触发时执行名为 stateChanged 的函数?向服务器发送一个 HTTP 请求?如果输入域为空,此函数仅仅会清空 txtHint 占位符的内容?————————————————————————例子解释 - GetXmlHttpObject() 函数上面的例子可调用名为 GetXmlHttpObject() 的函数。
此函数的作用是解决为不同浏览器创建不同的 XMLHTTP 对象的问题。
这是此函数的代码:
function GetXmlHttpObject(){  var xmlHttp=null;  try    {    // Firefox, Opera 8.0+, Safari    xmlHttp=new XMLHttpRequest();    }  catch (e)    {    // Internet Explorer    try      {      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      }    catch (e)      {      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      }    }  return xmlHttp;}
?————————————————————————例子解释 - stateChanged() 函数stateChanged() 函数包含下面的代码:
function stateChanged() {   if (xmlHttp.readyState==4)  {   document.getElementById("txtHint").innerHTML=xmlHttp.responseText;  }}
?每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行。

当状态变更为 4(“完成”)时,txtHint 占位符的内容就被响应文本来填充。




?

?

热点排行