`
JavaCrazyer
  • 浏览: 3012213 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

AJAX高级学习(5)——AJAX ResponseXML 实例

阅读更多

与 responseText 以字符串返回 HTTP 响应不同,responseXML 以 XML 返回响应。

 

ResponseXML 属性返回 XML 文档对象,可使用 W3C DOM 节点树的方法和属性来检查和解析该对象。

——————————————————————————————
AJAX ResponseXML 实例
在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从数据库中读取信息。这次,这些从数据库中选取的数据将被转换为 XML 文档,然后我们将使用 DOM 来提取要显示的值。
——————————————————————————————
实例运行示意图



 ——————————————————————————————
AJAX 实例解释
上面的例子包含一个 HTML 表单,若干个保留所返回数据的 <span> 元素,以及指向一段 JavaScript 的链接:
<html>
<head>
<script src="selectcustomer_xml.js"></script>
</head>
<body>

<form action=""> 
<label>选择客户:
<select name="customers" onchange="showCustomer(this.value)">
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select></label>
</form>

<b><span id="companyname"></span></b><br />
<span id="contactname"></span><br />
<span id="address"></span>
<span id="city"></span><br/>
<span id="country"></span>

</body>
</html>
 上面的例子包含了一个 HTML 表单,该表单带有一个名为 "customers" 下拉框。

当用户选取下拉框中的客户时,函数 "showCustomer()" 就会被执行。事件 "onchange" 会触发该函数执行。换句话说,每当用户改变下拉框中的值时,函数 showCustomer() 就会被调用。

下面列出了 JavaScript 代码。

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

AJAX JavaScript

这是存储在文件 "selectcustomer_xml.js" 中的 JavaScript 代码:

var xmlHttp

function showCustomer(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var url="getcustomer_xml.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged() 
{ 
if (xmlHttp.readyState==4)
{
var xmlDoc=xmlHttp.responseXML.documentElement;
document.getElementById("companyname").innerHTML=
xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;
document.getElementById("contactname").innerHTML=
xmlDoc.getElementsByTagName("contname")[0].childNodes[0].nodeValue;
document.getElementById("address").innerHTML=
xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;
document.getElementById("city").innerHTML=
xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;
document.getElementById("country").innerHTML=
xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;
}
}

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;
}
 

showCustomer() 和 GetXmlHttpObject() 与上一节相同。stateChanged() 函数稍早前也在本教程中使用过。不过,这次我们通过 responseXML 以 XML 文档返回结果,并使用 DOM 来提取要显示的值。

 

 ——————————————————————————————
AJAX 服务器页面
这个被 JavaScript 调用的服务器页面,是名为 "getcustomer_xml.asp" 的简单 ASP 文件。

该页面使用 VBScript 编写,针对 Internet 信息服务器 (IIS)。可以用 PHP 或其他服务器语言,简单地重写该页面。

请看在 PHP 中对应的例子(测试:缺具体页面)。

这段代码执行针对数据库的 SQL 查询,并以 XML 文档返回结果:
<%
response.expires=-1
response.contenttype="text/xml"

sql="SELECT * FROM CUSTOMERS "
sql=sql & " WHERE CUSTOMERID='" & request.querystring("q") & "'"

on error resume next
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql, conn

if err <> 0 then
response.write(err.description)
set rs=nothing
set conn=nothing
else
response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.write("<company>")
response.write("<compname>" &rs.fields("companyname")& "</compname>")
response.write("<contname>" &rs.fields("contactname")& "</contname>")
response.write("<address>" &rs.fields("address")& "</address>")
response.write("<city>" &rs.fields("city")& "</city>")
response.write("<country>" &rs.fields("country")& "</country>")
response.write("</company>")
end if
on error goto 0
%>
 请注意上面的 ASP 代码中的第二行:response.contenttype="text/xml"。ContentType 属性为 response 对象设置了 HTTP 内容类型。该属性的默认值是 "text/html"。这次我们把内容类型设置为 XML。

然后我们从数据库中选取数据,并使用这些数据构建 XML 文档。


  • 大小: 4.5 KB
分享到:
评论

相关推荐

    学习ajax的文档——ajax基础文档

    要使用Ajax,首先需要创建一个`XMLHttpRequest`实例。然后,我们需要设置请求的类型(GET或POST)、URL以及是否异步执行。接着,调用`open()`方法初始化请求,再调用`send()`方法发送请求。例如: ```javascript ...

    Ajax实例 Ajax实例

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过学习和实践这些Ajax实例,你可以更好地掌握如何在Web应用中实现无刷新的数据交换。

    Ajax教程 AJAX——新手快车道

    5. **处理返回数据**:使用`responseText`或`responseXML`属性获取服务器响应的数据,根据需求进行解析和处理。 **三、AJAX的应用场景** 1. **动态加载内容**:例如,分页、无限滚动、实时搜索建议等,无需刷新...

    ajax demo ajax实例

    在"ajax demo ajax实例"这个项目中,我们可以学习到如何创建和实现基本的Ajax功能。Ajax的核心是JavaScript对象XMLHttpRequest,它是浏览器提供的内置对象,用于在后台与服务器进行通信。以下是一些关键知识点: 1....

    AJAX实例大全(有演示)

    通过《AJAX实例大全(有演示)》的学习,开发者不仅可以掌握AJAX的基本用法,还能深入理解其在实际项目中的应用技巧,从而提升开发效率和用户体验。书中提供的演示将使学习过程更为直观和生动,让AJAX技术的掌握不再...

    ajax实例大全.rar

    **Ajax 实例大全详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...这些实例涵盖了Ajax的基础用法到高级技巧,是学习和研究Ajax技术的宝贵资源。

    ajax实例源码

    ### 学习Ajax实例——Struts2AjaxDemo 在Struts2框架中,我们可以结合Ajax来实现动态页面更新。Struts2提供了内置的Ajax支持,通过使用`struts2-jquery-plugin`插件或者`struts2-convention-plugin`,可以简化Ajax...

    Ajax开发精要——概念、案例与框架

    **Ajax开发精要——概念、案例与框架** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,提高了...

    简单Ajax实例AjaxSample

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过学习和理解这个实例,开发者可以更好地运用Ajax技术在实际项目中实现动态网页更新。

    AJAX实例应用,有20多个实例

    本压缩包包含了20多个AJAX的应用实例,涵盖了AJAX的基础用法到高级技巧,帮助开发者深入理解和应用AJAX。 1. **基础概念:** - **异步通信**:AJAX的核心是XMLHttpRequest对象,它允许JavaScript在后台与服务器...

    Ajax经典实例大全

    为了简化Ajax的开发,许多JavaScript库和框架提供了高级封装,如jQuery的$.ajax(),Vue.js的axios,React的fetch API等。它们提供了更友好的API,简化了Ajax操作。 在"Ajax经典实例大全"中,你将找到各种实用的示例...

    《ajax实例demo》

    本实例Demo主要展示了如何使用Ajax实现页面的异步交互,提高用户体验。** 1. **基本概念** - **异步通信**:Ajax的核心是JavaScript的XMLHttpRequest对象,它允许浏览器在不刷新整个页面的情况下与服务器进行数据...

    ajax 实例实例实例ajax 实例实例实例ajax 实例实例实例

    5. **处理响应**:使用`responseText`或`responseXML`属性获取服务器返回的数据。 ### 三、Ajax实例 以下是一个简单的Ajax GET请求示例: ```javascript function getData(url) { var xhr = new XMLHttpRequest...

    Ajax实例 Ajax特效

    Ajax实例通常包括以下几个关键组成部分: 1. **事件触发**:用户在页面上的某些操作,如点击按钮,触发Ajax请求。 2. **创建XMLHttpRequest对象**:所有现代浏览器都内置了XMLHttpRequest对象,用于发送HTTP请求。 3...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    5. **接收响应**:如果`status`属性值为200,表示请求成功,可以使用`responseText`或`responseXML`属性获取服务器返回的数据。 6. **处理返回数据**:将服务器返回的数据解析并更新DOM,实现局部刷新。 ### **Ajax...

    ajax_入门实例_

    **Ajax 入门实例详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的核心在于利用JavaScript创建XMLHttpRequest对象,通过这个对象与服务器...

    ajax学习实例

    通过学习这个"ajax学习实例",你可以深入了解Ajax的工作原理和实际应用,掌握如何使用XMLHttpRequest对象进行异步数据交互,以及如何在JavaScript中处理响应和更新页面内容。同时,结合实际的项目练习,可以更好地...

    Ajax程序开发经典实例教程.zip

    本教程“Ajax程序开发经典实例教程”旨在帮助开发者深入理解和掌握Ajax技术,通过实例学习,使学习过程更加直观和易懂。 Ajax的核心在于创建XMLHttpRequest对象,它是JavaScript内置的对象,用于在后台与服务器进行...

    Ajax简单实例

    Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行...通过学习这个实例,你可以更好地理解Ajax的工作原理以及如何在实际项目中应用它。

    Ajax简单实例 XMLHttpRequest

    本实例将通过XMLHttpRequest对象来展示Ajax的基础用法,非常适合初学者学习。 首先,要理解XMLHttpRequest对象是Ajax的核心,它负责在后台与服务器进行通信。在JavaScript中,我们可以通过以下方式创建一个...

Global site tag (gtag.js) - Google Analytics