从第一次接触B/S开发开始,就听说了AJAX技术,但一直处于模棱两可的状态。一般人都明白,刚开始工作就傻眼了。
AJAX似乎是一项深不可测的技术,是B/S学习过程中的一个阴影。
直到几天前,蔡晓才真正开始练习AJAX,人们发现AJAX并没有那么难。如果不考虑AJAX的变体应用,只考虑AJAX的基础应用,还是挺简单的,过于复杂的理论阻碍了我们的主动性。
因此,从实用的角度来看,本系列教程将使读者能够尽快掌握基本的AJAX应用程序,并以最直接的方式展示AJAX技术。
为了更好地阅读本系列教程,读者需要如下:
我熟悉超文本标记语言。
我熟悉HTTP协议。
我熟悉javascript。
我熟悉XML。
我熟悉XML DOM。
AJAX不是一项新技术,它只是一个新标准。根据蔡晓个人的理解,所谓的AJAX技术,就是为了实现客户端和服务器端的后台交互,使用xml作为信息载体,使用javascript进行控制,通过HTTP协议进行交互,从而达到部分刷新html界面的效果。
让我们稍微谈谈这些技术。
HTML没什么好说的。
HTTP协议中的内容更多。在AJAX实践中,会涉及到POST、GET方法请求数据、HTTP头信息的构造、数据的解析格式等。这主要是这三项。看哪一个不熟悉,赶紧补习!但是很简单。不要紧张。
想一想,AJAX只是在写Javascript脚本,而javascript负责声明一个至关重要的xmlHttpRequest对象,这个对象通过POST或GET方法向服务器发送请求,获取xml格式的返回数据,然后解析出XML并显示在界面上,这就是AJAX的执行过程。
Xml无非是一种数据规范,可以使数据具有一定的结构,从而便于数据组织和数据扩展。
xml的基本组成部分是元素,在HTML中通常称为标签,比如:book/book;元素和元素可以嵌套,例如:bookname/name/book。同时,元素可以有属性,比如:book name data=“1001晚”/name/book。
这样,xml可以表示非常丰富和灵活的信息,甚至可以用作小型数据库。
这里建议使用子元素来扩展元素,比如bookname/name/book。不建议使用属性来扩展元素,比如book name="/book,因为子元素比属性更灵活,符合xml的设计思想。
如果你想用Javascript操作xml,你必须了解DOM(文档对象模型)的基本知识。为了方便读者学习,我们将简单介绍一下XML DOM。
根据DOM定义,xml中的每个组件都是一个节点。根据对小盘的理解,组件的含义就是xml的组件。
具体如下:
整个文档是一个文档节点。
每个xml标签都是一个元素节点。例如,book/book是一对标签,也称为元素节点和元素。
包含在xml元素中的文本是一个文本节点。例如,命名1001个夜晚/名称,其中“1001个夜晚”是文本节点。
XML元素的l个属性称为属性节点。例如book serialNumber=" 0905024 "/book,其中serial number是属性节点。
一个节点有三个非常重要的属性,即节点名、节点值和节点类型。其中,nodeName和nodeValue非常常见,必须澄清。
对于节点名(只读),有:
l元素节点的节点名与元素的标签名相同。例如,节点名为book的元素book/book。
属性节点的节点名就是属性名。例如,book serialNumber=" 0905024 "/book,属性节点是serialNumber,那么它的nodeName属性也是serial number。
文本节点的节点名是一个固定的#文本字符串。例如,name 1001 nights /name,文本节点为“1001 nights”,其nodeName将返回固定字符串“#text”。
对于节点值(读/写),有:
l元素节点的NodeValue返回undefind。例如,book/book元素,其nodeValue属性将返回undefind。
l属性节点的nodeValue是属性的值。例如:book serialNumber=" 0905024 "/book,属性节点为serial number,其nodeValue返回0905024。
文本节点的节点值是文本本身的内容。例如,name 1001 nights /name,文本节点为“1001 nights”,其nodeValue返回“1001 nights”。这个一定要特别注意!在本例中,name元素包含一个“1,001晚”文本节点,它不是name元素的值(nodeValue)!名称元素(节点值)的值是undefind!因此,在实际编程中,需要注意的是,在获取name元素时,应该像firstChild和childNodes[0]一样,进一步获取元素中包含的文本节点,然后用nodeValue属性读出文本内容。
总而言之,你可以用一张图片来总结AJAX技术:
以有限的精力和水平,不可能详细讲解这些技术,需要读者有一定的基础。本系列文章的目的是让读者通过小盘的实例,突然认识到AJAX,认识到它的本质。