当前位置: 首页 > 图文教程 > 网络编程 > Javascript > AJAX教程(8):AJAX 请求实例

Javascript
JavaScript DOM学习第八章 表单错误提示
JavaScript DOM 学习第九章 选取范围的介绍
JavaScript CSS修改学习第一章 查找位置
JavaScript CSS修改学习第二章 样式
JavaScript CSS修改学习第三章 修改样式表
JavaScript CSS 修改学习第四章 透明度设置
JavaScript CSS修改学习第五章 给“上传”添加样式
JavaScript CSS修改学习第六章 拖拽
Jquery乱码的一次解决过程 图解教程
javascript 包裹节点 提高效率
javascript inneHTML的地雷
javascript 定义新对象方法
判定对象是否为window的js代码
jquery validator 插件增加日期比较方法
jquery 得到当前页面高度和宽度的两个函数
JavaScript 编写匿名函数的几种方法
jQuery 操作下拉列表框实现代码
jQuery入门问答 整理的几个常见的初学者问题
第一个JavaScript入门基础 document.write输出
javascript入门基础之私有变量

Javascript 中的 AJAX教程(8):AJAX 请求实例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 63 ::
收藏到网摘: n/a

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

AJAX Suggest实例

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

在下面的文本框中输入名字:

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 占位符的内容就被响应文本来填充。