第10章-ASP高级程序设计_第1页
第10章-ASP高级程序设计_第2页
第10章-ASP高级程序设计_第3页
第10章-ASP高级程序设计_第4页
第10章-ASP高级程序设计_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP动态网页制作教程第10章ASP高级程序设计

本章介绍ASP高级程序设计的相关技术,主要内容包括ASP操作XML文档、在ASP中应用Ajax技术、在ASP中使用类。通过本章的学习,读者应掌握XML文档的结构并能对其进行编辑等操作,能够在ASP应用程序中使用Ajax技术完成异步操作,能够将代码封装在类中。主要内容

小结10.4

上机指导10.5在ASP中应用Ajax10.2

ASP操作XML文档10.1在ASP中使用类10.310.1ASP操作XML文档随着Internet的迅速发展和广泛普及,XML的出现体现出了它的适用性和重要性。XML是由W3C定义的一种标记语言。由于XML是没有版权限制的,这样用户可以建立属于自己的一套软件而无须支付任何费用。

ASP应用DOM技术可以读取(包括远程读取)或存储XML数据,而且在XML文挡中数据与显示格式是分离的,从而可以方便地规定XML文档中数据的输出格式。

10.1.1XML概述为了弥补HTML语言不可扩展的缺点,并适应当前网站中庞大数据交换的需求,Web标准化组织万维网联合会建议并推出可扩展标记语言(eXtentsibleMarkupLanguage,XML)。

XML语言是一种精简的标准通用化标记语言(StandardGeneralizedMarkupLanguage,SGML)版本,是一种提供数据描述格式的标记语言,适用于不同应用程序间的数据交换,而且这种交换不以预先定义的一组数据结构为前提,增强了可扩展性。

1.XML文档的结构

XML是一套定义语义标记的规则,是可以定义其他标识语言的元标识语言。在XML文档中可以自定义标记和文档结构。

XML文档总体上包括两部分:序言和文档元素。

(1)序言序言中包含XML声明、处理指令和注释。序言必须出现在XML文档的开始处。

(2)文档元素

XML文档中的元素是以树型分层结构排列的,元素可以嵌套在其他元素中。

2.XML语法要求创建格式正确的XML文档的语法要求如下。

(1)XML文档必须有一个顶层元素,即文档元素。(2)元素嵌套要正确,即如果一个元素在另一个元素中开始,那么必须在同一元素中结束。

(3)每一个元素必须同时拥有起始标记和结束标记。(4)起始标记中的元素类型名必须与相应结束标记中的名称完全匹配。

(5)元素类型名区分大小写。(6)元素类型名称中可以包含字母、数字以及其他字母元素类型,也可以使用非英文字符。

3.使用属性在一个元素的起始标记中,可以自定义一个或者多个属性。

4.注释注释是为了便于阅读和理解,在XML文档添加的附加信息。

10.1.2XML的3种显示格式显示XML文档常见的有3种格式:使用CSS样式表、使用XSL样式表和使用XML数据岛技术。

1.CSS样式表在XML文档中可以使用CSS样式表显示XML文档内容。在XML文档中直接链接一个CSS样式表文件。CSS样式表中的样式名称应与XML文档中定义的元素名称相同。

语法:

<?xml-stylesheettype=“text/css”href=“CSS样式表文件路径”?>

【例10-1】使用CSS样式表显示XML文档内容。

图10-1使用CSS样式表显示XML文档内容

2.XSL样式语言可扩展样式表语言(eXtensible

StylesheetLanguage,XSL)语言与CSS样式表的功能类似。一个XSL样式表链接到一个XML文档可以显示XML数据。

在XML文档中应用CSS样式表只允许指定每个XML元素的格式,而XSL样式表允许对输出进行完整的控制。XSL样式表能够精确地选择想要显示的XML数据,能够按照任意顺序排列显示的数据,能够方便地修改或者添加数据。

XSL是XML的一个应用,即一个XSL样式表是一个遵守XML规则格式的正确有效的XML文档,其扩展名为.xsl。

在XML文档中使用XSL样式表的语法如下:

<?xml-stylesheettype=“text/xsl”href=“XSL样式表路径”?>

【例10-2】XSL样式表显示XML文档。

图10-2XSL样式表显示XML文档

3.XML数据岛技术

XML数据岛技术可以有效地将显示格式和显示数据分离。使用XML数据岛技术的文档也是一个正确有效的XML文档。在XML文档中存放显示的数据,在HTML页面中调用该文档显示XML文档内容。

在HTML文件中链接XML文件的语法如下:

<xmlid=“value”src=“XML文件”>

【例10-3】应用XML数据岛技术显示XML文档内容。

图10-3应用XML数据岛技术显示XML文档内容

10.1.3通过DOM技术加载XML文档文档对象模型(DocumentObjectModel,DOM)技术主要是指利用DOM分析器通过对XML文档的分析,把整个XML文档以一棵DOM树的形式存放在内存中,应用程序可以随时对DOM树中的任何一个部分进行访问与操作,也就是说,通过DOM树,应用程序可以对XML文档进行随机访问。

在ASP中,通过创建Document对象可以对XML文档进行相关功能的操作。在IE5.0中,包含了MicrosoftXML类库,其中就包含了Document对象。

要在ASP中使用MicrosoftXML,首先必须在服务器端安装IE5.0或XML的插件,如果使用的是Windows2000或WindowsXP就不需要安装IE5.0或XML的插件,如果使用的是Windows98,则需安装一个IE5.0或IE5.0以上版本的浏览器即可运行XML文件。

在ASP中创建Document对象的基本语法为:

SetnewXML=Server.CreateObject("Microsoft.XMLDOM")

当对象创建完成后就可以使用其内部的函数。

ASP是通过DOM接口来访问XML文档中的任何一部分数据的。下面介绍两种访问XML文档的方法,分别为通过load方法直接加载XML文档和通过loadXML方法加载XML文档片断。

1.通过load方法直接加载XML文档通过load方法可以将指定的文件装载到当前的Document文档对象中,如果装载成功则返回“True”,否则将返回“False”。语法:

load(filename)

2.通过loadXML方法加载XML文档片段通过loadXML方法可以将指定的XML字符串装载到当前的Document文档对象中,如果装载成功则返回“True”,否则返回“False”。语法:

loadXML(xmlString)

10.1.4ASP向XML文档中添加数据通过Document对象的load方法加载XML文档,然后调用相关方法创建XML文档的子元素,可以将表单中的数据动态添加到XML文档中。

【例10-4】向XML文档中添加数据。

图10-4向XML文档中添加数据

图10-5XML文档中的内容

10.1.5ASP读取XML数据

XML文档中的标记是由用户自己定义的,浏览器是不能识别的,这就使得XML文档的数据和显示格式是分离的。在ASP中,通过DOM技术可以访问XML文档中的数据,然后将其内容显示到ASP页面中。

【例10-5】读取XML数据。

图10-6读取XML数据10.2在ASP中应用Ajax

10.2.1Ajax技术概述异步JavaScript和XML(AsynchronousJavaScriptAndXML,Ajax)是多种技术的综合,JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest等技术在协作过程中按照一定的方式发挥各自的作用,从而构成了Ajax。

互联网从Web1.0到Web2.0的转变,可以说在模式上是从单纯的“读”、“写”向“共同建设”的发展。Web2.0不是一个具体的事物,而是一个阶段。

在这个阶段中,是以用户为中心,主动为用户提供互联网信息。在Web2.0中,互联网将成为一个平台,在这个平台上将实现可编程、可执行的Web应用。

Ajax是Web2.0中非常重要的技术。Ajax是一种用于浏览器的技术,它可以在浏览器和服务器之间使用异步通信机制进行数据通信,从而允许浏览器向服务器获取少量信息而不是刷新整个页面。

10.2.2Ajax与传统Web技术的区别与传统的Web技术不同,Ajax采用的是异步交互处理技术。Ajax的异步处理可以将用户提交的数据在后台进行处理,这样,数据在更改时可以不用重新加载整个页面而只是刷新页面的局部。

传统Web工作模式的流程为:当客户端浏览器向服务器发出一个浏览网页的HTTP请求后,服务器接受该请求,查找所要浏览的动态网页文件,然后执行动态网页中的程序代码,并将动态网页转化成标准的静态网页,最后将生成的HTML页面返回给客户端。在这种模式下,当服务器处理数据时,用户一直处于等待状态。

Ajax的工作原理如下。(1)客户端浏览器在运行时首先加载一个Ajax引擎(该引擎由JavaScript编写)。

(2)Ajax引擎创建一个异步调用的对象,向Web服务器发出一个HTTP请求。(3)服务器端处理请求,并将处理结果以XML形式返回。

(4)Ajax引擎接收返回的结果,并通过JavaScript语句显示在浏览器上。

从Ajax的工作原理,可以看到Ajax的作用有以下几点。(1)减轻服务器的负担,因为Ajax的原则是“按需取数据”。

(2)无刷新更新页面,减少用户心理和实际的等待时间。(3)可以把以前一些服务器负担的工作转交给客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。

10.2.3Ajax使用的技术

1.JavaScript2.XML3.XMLHttpRequest4.DOM5.CSS

10.2.4Ajax开发需要注意的几个问题1.浏览器兼容性问题

2.XMLHttpRequest对象封装

3.性能问题

4.中文编码问题

10.2.5实现Ajax的步骤要实现一个Ajax异步调用和局部刷新的功能,需要以下几个步骤。

(1)创建XMLHttpRequest对象,即创建一个异步调用的对象。(2)创建一个新的HTTP请求,并指定该请求的方法、URL以及验证信息等。

(3)设置响应HTTP请求状态变化的函数。(4)发送HTTP请求。(5)获取异步调用返回的数据。(6)使用JavaScript和DOM实现局部刷新。

1.创建XmlHttpRequest对象不同的浏览器使用的异步调用对象也有所不同。在IE浏览器中异步调用使用的是XMLHTTP组件中的XMLHttpRequest对象,而在Netscape、Firefox浏览器中则直接使用XMLHttpRequest组件。因此,在不同浏览器中创建XmlHttpRequest对象的方法也不同。

(1)在IE中创建XmlHttpRequest对象语法:

var

xmlHttp=newActiveXObject("Msxml2.XMLHTTP");

或者

var

xmlHttp=newActiveXObject("Microsoft.XMLHTTP");

(2)在Netscape浏览器中创建XmlHttpRequest对象语法:

var

xmlHttp=newXMLHttpRequest();表10-1 XMLHttpRequest对象的属性和方法属性或方法描述readyState属性返回当前的请求状态onreadystatechange属性当readyState属性改变时就可以读取此属性值status属性返回HTTP状态码responseText属性将返回的响应信息用字符串表示ResponseBody属性返回响应信息正文,格式为字节数组ResponseXML属性将响应的domcoment对象解析成XML文档并返回续表属性或方法描述Open方法初始化一个新请求Send方法发送请求GetAllReponseHeaders方法返回所有HTTP头信息GetResponseHearder方法返回指定的HTTP头信息SetRequestHeader方法添加指定的HTTP头信息Abort方法停止当前的HTTP请求

2.创建HTTP请求创建了XMLHttpRequest对象后,必须为XMLHttpRequest对象创建HTTP请求,用于说明XMLHttpRequest对象要从何处获取数据。一般情况下可以从网站中获取数据,也可以从本地其他文件中获取数据。

通过调用XMLHttpRequest对象的Open方法可以创建HTTP请求。语法:

xmlHttp.open(Stringmethod,Stringurl,Booleanasyn,Stringuser,Stringpassword)表10-2 open方法参数参数名称描述method此参数指明了新请求的调用方法,其取值有get和posturl表示要请求页面的url地址。格式可以是相对路径、绝对路径或者是网络路径asyn说明该请求是异步传输还是同步传输,默认值为“true”(允许异步传输)user服务器验证时的用户名password服务器验证时的密码

3.设置响应HTTP请求状态变化的函数从创建XMLHttpRequest对象开始,到发送数据、接收数据,XMLHttpRequest对象一共要经历5种状态:未初始化状态、初始化状态、发送数据状态、接收数据状态和完成状态。要获取从服务器端返回的数据,就必须要先判断XMLHttpRequest对象的状态。表10-3 readystate属性属性值描述0表示尚未初始化,即未调用open()方法1建立请求,但还未调用send()方法发送请求2发送请求3处理请求4完成响应,返回数据

4.设置获取服务器返回数据的语句当异步调用过程完毕并且异步调用成功后,就可以通过XMLHttpRequest对象的responseText属性和ResponseXML属性来获取数据了。

也就是说,当XMLHttpRequest对象的readystate属性值为4,并且判断XMLHttpRequest对象的status属性值为200时,才能成功获取服务器返回的数据。

下面分别介绍status属性、responseText属性和responseXML属性。(1)status属性表10-4 status属性属性值描述200操作成功404没有发现文件500服务器内部错误505服务器不支持或拒绝请求中指定的HTTP版本

(2)responseText属性(3)responseXML属性

5.发送HTTP请求创建了HTTP请求,并设置相关属性后,就可以将HTTP请求发送到Web服务器上去了。使用XmlHttpRequest对象的send()方法可以发送HTTP请求。语法:

xmlHttp.send(data)

6.实现局部更新通过Ajax的异步调用获取服务器端数据后,可以使用JavaScript或DOM将网页中的数据进行局部更新。下面介绍3种更新方法。

(1)表单元素的数据更新表单元素的数据更新是指更改表单元素的value属性值。

(2)IE浏览器标记间的文本更新在HTML页面中,除了表单元素,还有很多其他元素。在元素的开始标记与结束标记之间往往会有文本内容。

(3)使用DOM技术更新标记间的文本

innerText属性和innerHTML属性都是IE浏览器支持的属性,而在Netscape浏览器中是不支持这两个属性的。IE浏览器和Netscape浏览器都支持DOM,在DOM中可以修改标记间的文本内容。

10.2.6一个完整的Ajax实例通过以上内容的介绍,读者对于应用Ajax技术的过程已有所了解。下面介绍一个完整的Ajax实例。

【例10-6】一个完整的Ajax实例。

图10-7更新前的页面

图10-8更新后的页面10.3在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论