ASP高级程序设计教程.ppt
ASP动态网页制作教程第第1010章章 ASPASP高级程序设计高级程序设计 本章介绍本章介绍ASPASP高级程序设计的相关技术,高级程序设计的相关技术,主要内容包括主要内容包括ASPASP操作操作XMLXML文档、在文档、在ASPASP中应中应用用AjaxAjax技术、在技术、在ASPASP中使用类。通过本章的中使用类。通过本章的学习,读者应掌握学习,读者应掌握XMLXML文档的结构并能对其文档的结构并能对其进行编辑等操作,能够在进行编辑等操作,能够在ASPASP应用程序中使应用程序中使用用AjaxAjax技术完成异步操作,能够将代码封技术完成异步操作,能够将代码封装在类中。装在类中。主要内容主要内容 小小 结结10.4 上机指导上机指导10.5在在ASPASP中应用中应用AjaxAjax10.2 ASPASP操作操作XMLXML文档文档10.1在在ASPASP中使用类中使用类10.310.1 ASP操作操作XML文档文档 随着随着InternetInternet的迅速发展和广泛普及,的迅速发展和广泛普及,XMLXML的出现体现出了它的适用性和重要性。的出现体现出了它的适用性和重要性。XMLXML是由是由W3CW3C定义的一种标记语言。由于定义的一种标记语言。由于XMLXML是没有版权限制的,这样用户可以建立属是没有版权限制的,这样用户可以建立属于自己的一套软件而无须支付任何费用。于自己的一套软件而无须支付任何费用。ASPASP应用应用DOMDOM技术可以读取(包括远程技术可以读取(包括远程读取)或存储读取)或存储XMLXML数据,而且在数据,而且在XMLXML文挡中文挡中数据与显示格式是分离的,从而可以方便数据与显示格式是分离的,从而可以方便地规定地规定XMLXML文档中数据的输出格式。文档中数据的输出格式。10.1.1 XML10.1.1 XML概述概述 为了弥补为了弥补HTMLHTML语言不可扩展的缺点,语言不可扩展的缺点,并适应当前网站中庞大数据交换的需求,并适应当前网站中庞大数据交换的需求,WebWeb标准化组织万维网联合会建议并推出可标准化组织万维网联合会建议并推出可扩展标记语言(扩展标记语言(eXtentsibleeXtentsible Markup Markup LanguageLanguage,XMLXML)。)。XMLXML语言是一种精简的标准通用化标记语言是一种精简的标准通用化标记语言(语言(Standard Generalized Markup Standard Generalized Markup LanguageLanguage,SGMLSGML)版本,是一种提供数据)版本,是一种提供数据描述格式的标记语言,适用于不同应用程描述格式的标记语言,适用于不同应用程序间的数据交换,而且这种交换不以预先序间的数据交换,而且这种交换不以预先定义的一组数据结构为前提,增强了可扩定义的一组数据结构为前提,增强了可扩展性。展性。1 1XMLXML文档的结构文档的结构 XMLXML是一套定义语义标记的规则,是可是一套定义语义标记的规则,是可以定义其他标识语言的元标识语言。在以定义其他标识语言的元标识语言。在XMLXML文档中可以自定义标记和文档结构。文档中可以自定义标记和文档结构。XMLXML文档总体上包括两部分:序言和文文档总体上包括两部分:序言和文档元素。档元素。(1)序言)序言 序言中包含序言中包含XMLXML声明、处理指令和注释。声明、处理指令和注释。序言必须出现在序言必须出现在XMLXML文档的开始处。文档的开始处。(2)文档元素)文档元素 XMLXML文档中的元素是以树型分层结构排文档中的元素是以树型分层结构排列的,元素可以嵌套在其他元素中。列的,元素可以嵌套在其他元素中。2 2XMLXML语法要求语法要求 创建格式正确的创建格式正确的XMLXML文档的语法要求如文档的语法要求如下。下。(1)XML文档必须有一个顶层元文档必须有一个顶层元素,即文档元素。素,即文档元素。(2)元素嵌套要正确,即如果一)元素嵌套要正确,即如果一个元素在另一个元素中开始,那个元素在另一个元素中开始,那么必须在同一元素中结束。么必须在同一元素中结束。(3)每一个元素必须同时拥有起)每一个元素必须同时拥有起始标记和结束标记。始标记和结束标记。(4)起始标记中的元素类型名必)起始标记中的元素类型名必须与相应结束标记中的名称完全须与相应结束标记中的名称完全匹配。匹配。(5)元素类型名区分大小写。)元素类型名区分大小写。(6)元素类型名称中可以包含字)元素类型名称中可以包含字母、数字以及其他字母元素类型,母、数字以及其他字母元素类型,也可以使用非英文字符。也可以使用非英文字符。3 3使用属性使用属性 在一个元素的起始标记中,可以自定在一个元素的起始标记中,可以自定义一个或者多个属性。义一个或者多个属性。4 4注释注释 注释是为了便于阅读和理解,在注释是为了便于阅读和理解,在XMLXML文文档添加的附加信息。档添加的附加信息。10.1.2 XML10.1.2 XML的的3 3种显示格式种显示格式 显示显示XMLXML文档常见的有文档常见的有3 3种格式:使用种格式:使用CSSCSS样式表、使用样式表、使用XSLXSL样式表和使用样式表和使用XMLXML数据数据岛技术。岛技术。1 1CSSCSS样式表样式表 在在XMLXML文档中可以使用文档中可以使用CSSCSS样式表显示样式表显示XMLXML文档内容。在文档内容。在XMLXML文档中直接链接一个文档中直接链接一个CSSCSS样式表文件。样式表文件。CSSCSS样式表中的样式名称样式表中的样式名称应与应与XMLXML文档中定义的元素名称相同。文档中定义的元素名称相同。语法:语法:?xml-?【例例10-110-1】使用使用CSSCSS样式表显示样式表显示XMLXML文文档内容。档内容。图图10-1 10-1 使用使用CSSCSS样式表显示样式表显示XMLXML文档内容文档内容 2 2XSLXSL样式语言样式语言 可扩展样式表语言(可扩展样式表语言(eXtensibleeXtensible StylesheetStylesheet Language Language,XSLXSL)语言与)语言与CSSCSS样样式表的功能类似。一个式表的功能类似。一个XSLXSL样式表链接到一样式表链接到一个个XMLXML文档可以显示文档可以显示XMLXML数据。数据。在在XMLXML文档中应用文档中应用CSSCSS样式表只允许指样式表只允许指定每个定每个XMLXML元素的格式,而元素的格式,而XSLXSL样式表允许样式表允许对输出进行完整的控制。对输出进行完整的控制。XSLXSL样式表能够精样式表能够精确地选择想要显示的确地选择想要显示的XMLXML数据,能够按照任数据,能够按照任意顺序排列显示的数据,能够方便地修改意顺序排列显示的数据,能够方便地修改或者添加数据。或者添加数据。XSLXSL是是XMLXML的一个应用,即一个的一个应用,即一个XSLXSL样式样式表是一个遵守表是一个遵守XMLXML规则格式的正确有效的规则格式的正确有效的XMLXML文档,其扩展名为文档,其扩展名为.xslxsl。在在XMLXML文档中使用文档中使用XSLXSL样式表的语法如样式表的语法如下:下:?xml-?【例例10-210-2】XSLXSL样式表显示样式表显示XMLXML文档。文档。图图10-2 XSL10-2 XSL样式表显示样式表显示XMLXML文档文档 3 3XMLXML数据岛技术数据岛技术 XMLXML数据岛技术可以有效地将显示格式数据岛技术可以有效地将显示格式和显示数据分离。使用和显示数据分离。使用XMLXML数据岛技术的文数据岛技术的文档也是一个正确有效的档也是一个正确有效的XMLXML文档。在文档。在XMLXML文文档中存放显示的数据,在档中存放显示的数据,在HTMLHTML页面中调用页面中调用该文档显示该文档显示XMLXML文档内容。文档内容。在在HTMLHTML文件中链接文件中链接XMLXML文件的语法如下:文件的语法如下:xml id=“value”【例例10-310-3】应用应用XMLXML数据岛技术显示数据岛技术显示XMLXML文档内容。文档内容。图图10-3 10-3 应用应用XMLXML数据岛技术显示数据岛技术显示XMLXML文档内容文档内容 10.1.3 10.1.3 通过通过DOMDOM技术加载技术加载XMLXML文档文档 文档对象模型(文档对象模型(Document Object Document Object ModelModel,DOMDOM)技术主要是指利用)技术主要是指利用DOMDOM分析器分析器通过对通过对XMLXML文档的分析,把整个文档的分析,把整个XMLXML文档以文档以一棵一棵DOMDOM树的形式存放在内存中,应用程序树的形式存放在内存中,应用程序可以随时对可以随时对DOMDOM树中的任何一个部分进行访树中的任何一个部分进行访问与操作,也就是说,通过问与操作,也就是说,通过DOMDOM树,应用程树,应用程序可以对序可以对XMLXML文档进行随机访问。文档进行随机访问。在在ASPASP中,通过创建中,通过创建DocumentDocument对象可以对象可以对对XMLXML文档进行相关功能的操作。在文档进行相关功能的操作。在IE 5.0IE 5.0中,包含了中,包含了Microsoft XMLMicrosoft XML类库,其中就包类库,其中就包含了含了DocumentDocument对象。对象。要在要在ASPASP中使用中使用Microsoft XMLMicrosoft XML,首先,首先必须在服务器端安装必须在服务器端安装IE 5.0IE 5.0或或XMLXML的插件,的插件,如果使用的是如果使用的是Windows 2000Windows 2000或或Windows XPWindows XP就不需要安装就不需要安装IE 5.0IE 5.0或或XMLXML的插件,如果使的插件,如果使用的是用的是Windows 98Windows 98,则需安装一个,则需安装一个IE 5.0IE 5.0或或IE 5.0IE 5.0以上版本的浏览器即可运行以上版本的浏览器即可运行XMLXML文文件。件。在在ASPASP中创建中创建DocumentDocument对象的基本语法对象的基本语法为:为:Set Set newXMLnewXML=Server.CreateObject(Microsoft.Server.CreateObject(Microsoft.XMLDOMXMLDOM)当对象创建完成后就可以使用其内部当对象创建完成后就可以使用其内部的函数。的函数。ASPASP是通过是通过DOMDOM接口来访问接口来访问XMLXML文档中的文档中的任何一部分数据的。下面介绍两种访问任何一部分数据的。下面介绍两种访问XMLXML文档的方法,分别为通过文档的方法,分别为通过loadload方法直接加方法直接加载载XMLXML文档和通过文档和通过loadXMLloadXML方法加载方法加载XMLXML文档文档片断。片断。1 1通过通过loadload方法直接加载方法直接加载XMLXML文档文档 通过通过loadload方法可以将指定的文件装载方法可以将指定的文件装载到当前的到当前的DocumentDocument文档对象中,如果装载文档对象中,如果装载成功则返回成功则返回“True”True”,否则将返回,否则将返回“False”False”。语法:语法:load(filenameload(filename)2 2通过通过loadXMLloadXML方法加载方法加载XMLXML文档片段文档片段 通过通过loadXMLloadXML方法可以将指定的方法可以将指定的XMLXML字字符串装载到当前的符串装载到当前的DocumentDocument文档对象中,文档对象中,如果装载成功则返回如果装载成功则返回“True”True”,否则返回,否则返回“False”False”。语法:语法:loadXML(xmlStringloadXML(xmlString)10.1.4 ASP10.1.4 ASP向向XMLXML文档中添加数据文档中添加数据 通过通过DocumentDocument对象的对象的loadload方法加载方法加载XMLXML文档,然后调用相关方法创建文档,然后调用相关方法创建XMLXML文档的子文档的子元素,可以将表单中的数据动态添加到元素,可以将表单中的数据动态添加到XMLXML文档中。文档中。【例例10-410-4】向向XMLXML文档中添加数据。文档中添加数据。图图10-4 10-4 向向XMLXML文档中添加数据文档中添加数据 图图10-5 XML10-5 XML文档中的内容文档中的内容 10.1.5 ASP10.1.5 ASP读取读取XMLXML数据数据 XMLXML文档中的标记是由用户自己定义的,文档中的标记是由用户自己定义的,浏览器是不能识别的,这就使得浏览器是不能识别的,这就使得XMLXML文档的文档的数据和显示格式是分离的。在数据和显示格式是分离的。在ASPASP中,通过中,通过DOMDOM技术可以访问技术可以访问XMLXML文档中的数据,然后文档中的数据,然后将其内容显示到将其内容显示到ASPASP页面中。页面中。【例例10-510-5】读取读取XMLXML数据。数据。图图10-6 10-6 读取读取XMLXML数据数据10.2 在在ASP中应用中应用Ajax 10.2.1 Ajax10.2.1 Ajax技术概述技术概述 异步异步JavaScriptJavaScript和和XMLXML(Asynchronous Asynchronous JavaScript And XMLJavaScript And XML,AjaxAjax)是多种技术)是多种技术的综合,的综合,JavaScriptJavaScript、XHTMLXHTML和和CSSCSS、DOMDOM、XMLXML和和XSTLXSTL、XMLHttpRequestXMLHttpRequest等技术在协作等技术在协作过程中按照一定的方式发挥各自的作用,过程中按照一定的方式发挥各自的作用,从而构成了从而构成了AjaxAjax。互联网从互联网从Web 1.0Web 1.0到到Web 2.0Web 2.0的转变,的转变,可以说在模式上是从单纯的可以说在模式上是从单纯的“读读”、“写写”向向“共同建设共同建设”的发展。的发展。Web 2.0Web 2.0不是一不是一个具体的事物,而是一个阶段。个具体的事物,而是一个阶段。在这个阶段中,是以用户为中心,主在这个阶段中,是以用户为中心,主动为用户提供互联网信息。在动为用户提供互联网信息。在Web 2.0Web 2.0中,中,互联网将成为一个平台,在这个平台上将互联网将成为一个平台,在这个平台上将实现可编程、可执行的实现可编程、可执行的WebWeb应用。应用。AjaxAjax是是Web 2.0Web 2.0中非常重要的技术。中非常重要的技术。AjaxAjax是一种用于浏览器的技术,它可以在是一种用于浏览器的技术,它可以在浏览器和服务器之间使用异步通信机制进浏览器和服务器之间使用异步通信机制进行数据通信,从而允许浏览器向服务器获行数据通信,从而允许浏览器向服务器获取少量信息而不是刷新整个页面。取少量信息而不是刷新整个页面。10.2.2 Ajax10.2.2 Ajax与传统与传统WebWeb技术的区别技术的区别 与传统的与传统的WebWeb技术不同,技术不同,AjaxAjax采用的是采用的是异步交互处理技术。异步交互处理技术。AjaxAjax的异步处理可以的异步处理可以将用户提交的数据在后台进行处理,这样,将用户提交的数据在后台进行处理,这样,数据在更改时可以不用重新加载整个页面数据在更改时可以不用重新加载整个页面而只是刷新页面的局部。而只是刷新页面的局部。传统传统WebWeb工作模式的流程为:当客户端工作模式的流程为:当客户端浏览器向服务器发出一个浏览网页的浏览器向服务器发出一个浏览网页的HTTPHTTP请求后,服务器接受该请求,查找所要浏请求后,服务器接受该请求,查找所要浏览的动态网页文件,然后执行动态网页中览的动态网页文件,然后执行动态网页中的程序代码,并将动态网页转化成标准的的程序代码,并将动态网页转化成标准的静态网页,最后将生成的静态网页,最后将生成的HTMLHTML页面返回给页面返回给客户端。在这种模式下,当服务器处理数客户端。在这种模式下,当服务器处理数据时,用户一直处于等待状态。据时,用户一直处于等待状态。AjaxAjax的工作原理如下。的工作原理如下。(1)客户端浏览器在运行时首先)客户端浏览器在运行时首先加载一个加载一个Ajax引擎(该引擎由引擎(该引擎由JavaScript编写)。编写)。(2)Ajax引擎创建一个异步调用引擎创建一个异步调用的对象,向的对象,向Web服务器发出一个服务器发出一个HTTP请求。请求。(3)服务器端处理请求,并将处)服务器端处理请求,并将处理结果以理结果以XML形式返回。形式返回。(4)Ajax引擎接收返回的结果,引擎接收返回的结果,并通过并通过JavaScript语句显示在浏览语句显示在浏览器上。器上。从从AjaxAjax的工作原理,可以看到的工作原理,可以看到AjaxAjax的的作用有以下几点。作用有以下几点。(1)减轻服务器的负担,因为)减轻服务器的负担,因为Ajax的原则是的原则是“按需取数据按需取数据”。(2)无刷新更新页面,减少用户)无刷新更新页面,减少用户心理和实际的等待时间。心理和实际的等待时间。(3)可以把以前一些服务器负担)可以把以前一些服务器负担的工作转交给客户端,利用客户的工作转交给客户端,利用客户端闲置的能力来处理,减轻服务端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽器和带宽的负担,节约空间和宽带租用成本。带租用成本。10.2.3 Ajax10.2.3 Ajax使用的技术使用的技术 1 1JavaScriptJavaScript 2 2XMLXML 3 3XMLHttpRequestXMLHttpRequest 4 4DOMDOM 5 5CSSCSS 10.2.4 Ajax10.2.4 Ajax开发需要注意的几个问题开发需要注意的几个问题 1 1浏览器兼容性问题浏览器兼容性问题 2 2XMLHttpRequestXMLHttpRequest对象封装对象封装 3 3性能问题性能问题 4 4中文编码问题中文编码问题 10.2.5 10.2.5 实现实现AjaxAjax的步骤的步骤 要实现一个要实现一个AjaxAjax异步调用和局部刷新异步调用和局部刷新的功能,需要以下几个步骤。的功能,需要以下几个步骤。(1)创建)创建XMLHttpRequest对象,对象,即创建一个异步调用的对象。即创建一个异步调用的对象。(2)创建一个新的)创建一个新的HTTP请求,并请求,并指定该请求的方法、指定该请求的方法、URL以及验以及验证信息等。证信息等。(3)设置响应)设置响应HTTP请求状态变化请求状态变化的函数。的函数。(4)发送)发送HTTP请求。请求。(5)获取异步调用返回的数据。)获取异步调用返回的数据。(6)使用)使用JavaScript和和DOM实现实现局部刷新。局部刷新。1 1创建创建XmlHttpRequestXmlHttpRequest对象对象 不同的浏览器使用的异步调用对象也不同的浏览器使用的异步调用对象也有所不同。在有所不同。在IEIE浏览器中异步调用使用的浏览器中异步调用使用的是是XMLHTTPXMLHTTP组件中的组件中的XMLHttpRequestXMLHttpRequest对象,对象,而在而在NetscapeNetscape、FirefoxFirefox浏览器中则直接使浏览器中则直接使用用XMLHttpRequestXMLHttpRequest组件。因此,在不同浏组件。因此,在不同浏览器中创建览器中创建XmlHttpRequestXmlHttpRequest对象的方法也对象的方法也不同。不同。(1)在)在IE中创建中创建XmlHttpRequest对对象象 语法:语法:varvar xmlHttpxmlHttp=new =new ActiveXObject(Msxml2.XMLHTTP);ActiveXObject(Msxml2.XMLHTTP);或者或者 varvar xmlHttpxmlHttp=new=new ActiveXObject(Microsoft.XMLHTTPActiveXObject(Microsoft.XMLHTTP););(2)在)在Netscape浏览器中创建浏览器中创建XmlHttpRequest对象对象 语法:语法:varvar xmlHttpxmlHttp=new =new XMLHttpRequestXMLHttpRequest();();表表10-110-1XMLHttpRequestXMLHttpRequest对象的属性和方法对象的属性和方法属性或方法属性或方法描描 述述readyStatereadyState属性属性返回当前的请求状态返回当前的请求状态onreadystatechangeonreadystatechange属性属性当当readyStatereadyState属性改变时就可以读取此属性属性改变时就可以读取此属性值值statusstatus属性属性返回返回HTTPHTTP状态码状态码responseTextresponseText属性属性将返回的响应信息用字符串表示将返回的响应信息用字符串表示ResponseBodyResponseBody属性属性返回响应信息正文,格式为字节数组返回响应信息正文,格式为字节数组ResponseXMLResponseXML属性属性将响应的将响应的domcomentdomcoment对象解析成对象解析成XMLXML文档并返文档并返回回续表续表属性或方法属性或方法描描 述述OpenOpen方法方法初始化一个新请求初始化一个新请求SendSend方法方法发送请求发送请求GetAllReponseHeadersGetAllReponseHeaders方法方法返回所有返回所有HTTPHTTP头信息头信息GetResponseHearderGetResponseHearder方法方法返回指定的返回指定的HTTPHTTP头信息头信息SetRequestHeaderSetRequestHeader方法方法添加指定的添加指定的HTTPHTTP头信息头信息AbortAbort方法方法停止当前的停止当前的HTTPHTTP请求请求 2 2创建创建HTTPHTTP请求请求 创建了创建了XMLHttpRequestXMLHttpRequest对象后,必须对象后,必须为为XMLHttpRequestXMLHttpRequest对象创建对象创建HTTPHTTP请求,用请求,用于说明于说明XMLHttpRequestXMLHttpRequest对象要从何处获取对象要从何处获取数据。一般情况下可以从网站中获取数据,数据。一般情况下可以从网站中获取数据,也可以从本地其他文件中获取数据。也可以从本地其他文件中获取数据。通过调用通过调用XMLHttpRequestXMLHttpRequest对象的对象的OpenOpen方法可以创建方法可以创建HTTPHTTP请求。请求。语法:语法:xmlHttp.open(StringxmlHttp.open(String method,method,String String urlurl,Boolean,Boolean asynasyn,String,String user,String password)user,String password)表表10-210-2openopen方法参数方法参数参参 数数 名名 称称描描 述述methodmethod此参数指明了新请求的调用方法,其取值有此参数指明了新请求的调用方法,其取值有getget和和postposturlurl表示要请求页面的表示要请求页面的urlurl地址。格式可以是相对路径、地址。格式可以是相对路径、绝对路径或者是网络路径绝对路径或者是网络路径asynasyn说明该请求是异步传输还是同步传输,默认值为说明该请求是异步传输还是同步传输,默认值为“true”true”(允许异步传输)(允许异步传输)useruser服务器验证时的用户名服务器验证时的用户名passwordpassword服务器验证时的密码服务器验证时的密码 3 3设置响应设置响应HTTPHTTP请求状态变化的函数请求状态变化的函数 从创建从创建XMLHttpRequestXMLHttpRequest对象开始,到对象开始,到发送数据、接收数据,发送数据、接收数据,XMLHttpRequestXMLHttpRequest对对象一共要经历象一共要经历5 5种状态:未初始化状态、初种状态:未初始化状态、初始化状态、发送数据状态、接收数据状态始化状态、发送数据状态、接收数据状态和完成状态。要获取从服务器端返回的数和完成状态。要获取从服务器端返回的数据,就必须要先判断据,就必须要先判断XMLHttpRequestXMLHttpRequest对象对象的状态。的状态。表表10-310-3readystatereadystate属性属性属属 性性 值值描描 述述0 0表示尚未初始化,即未调用表示尚未初始化,即未调用openopen()方法()方法1 1建立请求,但还未调用建立请求,但还未调用sendsend()方法发送请求()方法发送请求2 2发送请求发送请求3 3处理请求处理请求4 4完成响应,返回数据完成响应,返回数据 4 4设置获取服务器返回数据的语句设置获取服务器返回数据的语句 当异步调用过程完毕并且异步调用成当异步调用过程完毕并且异步调用成功后,就可以通过功后,就可以通过XMLHttpRequestXMLHttpRequest对象的对象的responseTextresponseText属性和属性和ResponseXMLResponseXML属性来获属性来获取数据了。取数据了。也就是说,当也就是说,当XMLHttpRequestXMLHttpRequest对象的对象的readystatereadystate属性值为属性值为4 4,并且判断,并且判断XMLHttpRequestXMLHttpRequest对象的对象的statusstatus属性值为属性值为200200时,才能成功获取服务器返回的数据。时,才能成功获取服务器返回的数据。下面分别介绍下面分别介绍statusstatus属性、属性、responseTextresponseText属性和属性和responseXMLresponseXML属性。属性。(1)status属性属性表表10-410-4statusstatus属性属性属属 性性 值值描描 述述200200操作成功操作成功404404没有发现文件没有发现文件500500服务器内部错误服务器内部错误505505服务器不支持或拒绝请求中指定的服务器不支持或拒绝请求中指定的HTTPHTTP版本版本(2)responseText属性属性(3)responseXML属性属性 5 5发送发送HTTPHTTP请求请求 创建了创建了HTTPHTTP请求,并设置相关属性后,请求,并设置相关属性后,就可以将就可以将HTTPHTTP请求发送到请求发送到WebWeb服务器上去了。服务器上去了。使用使用XmlHttpRequestXmlHttpRequest对象的对象的send()send()方法可方法可以发送以发送HTTPHTTP请求。请求。语法:语法:xmlHttp.send(dataxmlHttp.send(data)6 6实现局部更新实现局部更新 通过通过AjaxAjax的异步调用获取服务器端数的异步调用获取服务器端数据后,可以使用据后,可以使用JavaScriptJavaScript或或DOMDOM将网页中将网页中的数据进行局部更新。下面介绍的数据进行局部更新。下面介绍3 3种更新方种更新方法。法。(1)表单元素的数据更新)表单元素的数据更新 表单元素的数据更新是指更改表单元表单元素的数据更新是指更改表单元素的素的valuevalue属性值。属性值。(2)IE浏览器标记间的文本更新浏览器标记间的文本更新 在在HTMLHTML页面中,除了表单元素,还有页面中,除了表单元素,还有很多其他元素。在元素的开始标记与结束很多其他元素。在元素的开始标记与结束标记之间往往会有文本内容。标记之间往往会有文本内容。(3)使用)使用DOM技术更新标记间的文本技术更新标记间的文本 innerTextinnerText属性和属性和innerHTMLinnerHTML属性都是属性都是IEIE浏览器支持的属性,而在浏览器支持的属性,而在NetscapeNetscape浏览浏览器中是不支持这两个属性的。器中是不支持这两个属性的。IEIE浏览器和浏览器和NetscapeNetscape浏览器都支持浏览器都支持DOMDOM,在,在DOMDOM中可以中可以修改标记间的文本内容。修改标记间的文本内容。10.2.6 10.2.6 一个完整的一个完整的AjaxAjax实例实例 通过以上内容的介绍,读者对于应用通过以上内容的介绍,读者对于应用AjaxAjax技术的过程已有所了解。下面介绍一技术的过程已有所了解。下面介绍一个完整的个完整的AjaxAjax实例。实例。【例例10-610-6】一个完整的一个完整的AjaxAjax实例。实例。图图10-7 10-7 更新前的页面更新前的页面 图图10-8 10-8 更新后的页面更新后的页面10.3 在在ASP中使用类中使用类 在在ASPASP中不仅可以使用内置对象,还可中不仅可以使用内置对象,还可以建立自己的对象,并为该对象定义方法以建立自己的对象,并为该对象定义方法和属性。要建立自己的对象,需要使用类。和属性。要建立自己的对象,需要使用类。10.3.1 10.3.1 类的定义类的定义 要定义一个类,需要使用要定义一个类,需要使用ClassClass关键字,关键字,语法如下:语法如下:Class Class 类名类名 End Class End Class 在在ASPASP中,使用中,使用SetSet命令和命令和NewNew关键字来关键字来创建类的实例,语法如下:创建类的实例,语法如下:Set Set 类实例名称类实例名称=New=New 类名类名 使用使用SetSet命令注销类的实例,语法如下:命令注销类的实例,语法如下:SetSet类实例名称类实例名称=Nothing=Nothing 10.3.2 10.3.2 定义类的方法定义类的方法 在在ClassEnd ClassClassEnd Class之间可以定义函之间可以定义函数和子过程,这些函数和子过程就是此类数和子过程,这些函数和子过程就是此类的方法。的方法。【例例10-710-7】定义类的方法。定义类的方法。图图10-9 10-9 定义类的方法定义类的方法 10.3.3 10.3.3 定义类的属性定义类的属性 在类中可以使用在类中可以使用PublicPublic关键字定义一关键字定义一个公共变量,这个公共变量即可作为类的个公共变量,这个公共变量即可作为类的属性。定义属性后,就可以给该属性赋值属性。定义属性后,就可以给该属性赋值或者读取属性值。或者读取属性值。【例例10-810-8】定义类的属性。定义类的属性。图图10-10 10-10 定义类的属性定义类的属性 小小 结结 本章主要介绍了如何在本章主要介绍了如何在ASPASP中操控中操控XMLXML文档、应用文档、应用AjaxAjax技术以及使用类。读者在技术以及使用类。读者在掌握掌握XMLXML文档结构的基础上,可以通过文档结构的基础上,可以通过DOMDOM技术向技术向XMLXML文档中添加数据、读取文档中添加数据、读取XMLXML文档文档中的数据等。中的数据等。在理解在理解AjaxAjax技术的前提下,明确实现技术的前提下,明确实现AjaxAjax的关键步骤并能灵活运用的关键步骤并能灵活运用AjaxAjax技术来技术来实现页面的局部刷新;使用类可以将重复实现页面的局部刷新;使用类可以将重复使用或者关键的程序代码封装起来,从而使用或者关键的程序代码封装起来,从而提高程序的可执行性。提高程序的可执行性。上上 机机 指指 导导 10-1 10-1 创建一个有效的创建一个有效的XMLXML文档,用于文档,用于记录公司员工信息。在记录公司员工信息。在ASPASP页面中将页面中将XMLXML文文档中的数据显示在表格中,并应用档中的数据显示在表格中,并应用CSSCSS样式样式表来规范其显示格式。表来规范其显示格式。10-2 10-2 应用应用AjaxAjax技术制作无刷新留言技术制作无刷新留言板。板。10-3 10-3 定义一个类,根据指定的文件定义一个类,根据指定的文件路径返回文件名。路径返回文件名。