日期:2013-10-21  浏览次数:20804 次

什么是Ajax?

Ajax的定义

Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一同就成了一个功用强大的新技术。Ajax包括:

XHTML和CSS

使用文档对象模型(Document Object Model)作动态显示和交互

使用XML和XSLT做数据交互和操作

使用XMLHttpRequest进行异步数据接收

使用JavaScript将它们绑定在一同

传统的web使用模型任务起来就象这样:大部分界面上的用户动作触发一个连接到Web服务器的HTTP请求。

服务器完成一些处理---接收数据,处理计算,再访问其它的数据库系统,最后前往一个HTML页面到客户端。这是一个老套的模式,自采用超文本作为web使用以来,不断都这样用, 但看过《The Elements of User Experience》的读者一定知道,是什么限制了Web界面没有桌面软件那么好用。

老手解读:认识XML,AJAX,SNS,Tag
图1: 传统Web使用模型(左)与Ajax模型的比较(右).

这种旧的途径让我们认识到了许多技术,但它不会产生很好的用户体验。当服务器正在处理本人的事情的时候,用户在做什么?没错,等待。每一个动作,用户都要等待。

很明显,如果我们按桌面程序的思维设计Web使用,我们不情愿让用户总是等待。当界面加载后,为什么还要让用户每次再花一半的时间从服务取数据?实际上,为什么老是让用户看到程序去服务器取数据呢?

Ajax如何不同凡响

通过在用户和服务器之间引入一个Ajax引擎,可以消弭Web的开始-停止-开始-停止这样的交互过程. 它就像添加了一层机制到程序中,使它呼应更灵敏,而它的确做到了这一点。

不像加载一个页面一样,在会话的开始,浏览器加载了一个Ajax引擎---采用JavaScript编写并且通常在一个隐藏frame中。这个引擎担任绘制用户界面以及与服务器端通讯。Ajax引擎允许用异步的方式实现用户与程序的交互--不用等待服务器的通讯。所以用户再不不用打开一个空白窗口,看到等待光标不断的转,等待服务器完成后再呼应。

老手解读:认识XML,AJAX,SNS,Tag
图 2: 传统Web使用的同步交互过程(上)和Ajax使用的异步交互过程的比较(下).

通常要产生一个HTTP请求的用户动作如今通过JavaScript调用Ajax引擎来代替. 任何用户动作的呼应不再要求直接传到服务器---例如简单的数据校验,内存中的数据编辑,甚至一些页面导航---引擎本人就可以处理它. 如果引擎需求从服务器取数据来响使用户动作---假设它提交需求处理的数据,载入另外的界面代码,或者接收新的数据---引擎让这些任务异步进行,通常使用XML, 不用再担误用户界面的交互。

什么是XML?

XML是EXtensible Markup Language的缩写

XML是一品种似于HTML的标记言语

XML是用来描述数据的

XML的标记不是在XML中预定义的,你必须定义本人的标记

XML使用文档类型定义(DTD)或者模式(Schema)来描述数据

XML使用DTD或者Schema后就是自描述的言语

XML和HTML的次要区别是什么

XML是用来存放数据的

XML不是HTML的替代品,XML和HTML是两种不同用途的言语。

XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。

HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。

HTML是与显示信息相关的, XML则是与描述信息相关的。

“XML”是用于网络上数据交换的言语,具有与描述Web页面的“HTML”言语类似的格式。该言语有“可以利用Web浏览器进行数据确认”以及“易于生成数据”等优点,因此次要用于在企业之间,或者在企业内部愈加方便地进行数据交换和利用。首先为了便于理解,下面假设有这么一种情况:某图书销售商要着手建立本人的站点,并发送书店里的品种目录和库存情况等信息。

管理图书时,需求使用TABLE标签等,以一览表的方式提供 “书名”、“发行日期”、“库存”、“作者”、“出版社”和“定价”等数据。以这种方式汇总数据后,如果是人,就能够迅速地了解到各自所需的内容。但是,计算机(或系统)即便能够理解页面结构或数据规划,也无法理解这里的数据是什么意义(属性)。

然而,“XML”则正是能够让计算机也理解这些数据属性的技术。

如果使用XML,比如“库存目前有多少?”以及“某个作家写的书卖了多少册?”等数据就能够由计算机“自动地”掌握,并能够将这些数据与买卖对象“共享”。这样一来,出版社就能够在制定今后的出版计划时参考这些数据,而且销售公司制定无效的配送计划时也将愈加容易。这就必定大大有助于增添人事成本,以及提高管理效率。

当然,即便不使用XML,比如,如果能够建立一个规范的数据库,并为每个字段定义一个“书名”和“定价”等名称,计算机也能够理解。但是要想在Web上实现这一点,却要花费相当的人力和成本。在这一点上,如果是XML,由于“能够利用Web浏览器对数据进行确认“,因此只需拥有能够连接因特网的计算机和支持XML的浏览器,就不需再进行特别的投资。

使用XML,还能够将在以前的数据库中难以处理的数据转化成数据库。

XML的描述方式与HTML相反,利用被括号<>括起来的字符串进行描述。在HTML中,括号内所定义的都是版面(Layout)等信息。而XML则同时定义了数据的属性,比如刚才提到的图书,就是以<书名>、<作者>和<出版社>等方式定义。像这样的定义方式可以自在设置。因此,甚至有不少企业本人定义XML,然后将其用于本公司内部的数据交换。自在度如此之高也是XML遭到极大关注的缘由之一。