AJax技术

一种新的胖客户端技术——Ajax(一)(3)

字号+ 作者:H5之家 来源:H5之家 2017-04-03 15:01 我要评论( )

DOM的本质是建立网页与 Script 或程序语言沟通的桥梁。脚本语言通过DOM才可以跟页面进行交互。Web开发人员可操作及建立文件的属性、方法以及事件都以对象来展现。这些对象可以由当今大多数的浏览器以 Script 来取用

DOM的本质是建立网页与 Script 或程序语言沟通的桥梁。脚本语言通过DOM才可以跟页面进行交互。Web开发人员可操作及建立文件的属性、方法以及事件都以对象来展现。这些对象可以由当今大多数的浏览器以 Script 来取用。一个用HTML或XHTML构建的网页也可以看作是一组结构化的数据,这些数据被封在DOM中,DOM提供了网页中各个对象的读写的支持。

2.2.4 XML

可扩展的标记语言(Extensible Markup Language)具有一种开放的、可扩展的、可自描述的语言结构,它已经成为网上传输的数据和文档符合统一的标准。它是用来描述数据结构的一种语言,可以使对某些结构化数据的定义更加容易,并且可以通过它与其它应用程序交换数据。用XML表述的数据和文档,可以很容易的让所有程序共享。XML是用于网络上数据交换的语言,具有与描述Web页面的“HTML”语言相似的格式。该语言有“可以利用Web浏览器进行数据确认”以及“易于生成数据”等优点,因此主要用于在企业之间,或者在企业内部更加方便地进行数据交换和利用。XML是Extensible Markup Language的缩写,它是一种类似于HTML的标记语言。XML是用来描述数据的,它的标记不是在XML中预定义的,开发人员必须定义自己的标记。另外,XML使用文档类型定义(DTD)或者模式(Schema)来描述数据。而当它使用DTD或者Schema后就成为一种自描述的语言。

2.2.5 CSS

CSS是Cascading Style Sheets(层叠样式表单)的简称。更多的人把它称作样式表。顾名思义,它是一种设计网页样式的工具。借助CSS的强大功能,可以把数据更有效的表现在网页上。CSS是一种用来显示方式描述的标记语言。对于Ajax来说,CSS的最大特性是它可以用来显示。

我们在前面讨论过,Ajax技术有几部分组成,首先它有后台的引擎,把数据从服务器端取出来,前台取到数据以后有一种表示的方式,能把HTML取出来并在前台有条不紊的显示出来,这是一个重要的问题。网页的美感和可视化,是通过对CSS数据进行设定完成的。

2.3 Ajax技术的实现原理

介绍了它的相关技术后,我们来看一下它的实现原理。Ajax 这个名字代表了异步java script与XMLHttpRequest,并且意味着你可以在基于浏览器的java script和服务器之间建立通讯。这些用于现代浏览器中的若干成功技术的可能性组合的Ajax技术,使所有的Ajax应用程序实现了一种“丰富的”用户界面——这是通过java script操作HTML文档对象模型并且经由XMLHttpRequest实现的精确定位的数据检索来实现的。

(1)原理简介

Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求(主要是读取XML格式的数据)。Ajax是使用XML和java script两部分,在客户端向服务器端提出请求。从原理上看,主要是Ajax可以通过调用XMLHttpRequest实现与服务器的异步通讯,并最终在网页中实现丰富友好的用户界面。

应用Ajax的流程如下:

(1)定义一个事件处理器 。

(2)获取XMLHttpRequest,并将事件处理器注册给它。

(3)与服务器连接。

(4)发送信息。

(5)服务器返回处理完毕的信息。

(6)每当XMLHttpRequest的状态发生变化,自动触发事件处理器。

(7)事件处理器动态更新页面。

技术的关键是Ajax引擎,它实际上是一个比较复杂的java script应用程序,用来处理用户请求,读写服务器和更改DOM内容。在客户端多出来一个 Ajax engine,而且服务器传给客户端的已经不再是 HTML/CSS,而是纯的 XML 数据,客户端通过 XMLHTTP 向服务器端发送请求。所有的表示逻辑在客户端通过 java script 脚本来执行,然后通过修改 DOM 来完成展现。 由于有了位于客户端这个中间层,可以把原先必须在服务器端完成的很多交互工作放在了客户端完成,而客户端的 Ajax engine 的响应是即时的,因此用户的交互体验得到了极大的改善。

Ajax是传统Web应用程序的一个转变。以前是服务器每次生成HTML页面并返回给客户端(浏览器)。在大多数网站中,很多页面中大部分内容都是一样的,比如:结构、格式、页头、页尾、广告等,所不同的只是一小部分的内容,但每次服务器都会生成所有的页面再返回给客户端,这无形之中是一种浪费,不管是对于用户的时间、带宽、CPU耗用,还是对于ISP的高价租用的带宽和空间来说。而Ajax可以所为客户端和服务器的中间层,来处理客户端的请求,并根据需要向服务器端发送请求,用什么就取什么、用多少就取多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于纯后台处理并重载的方式缩短了用户等待时间,也把对资源的浪费降到最低,基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序,所以Ajax对于用户和ISP来说都是很有利的。

Ajax使Web中的界面与应用分离(也可以说是数据与呈现分离),而在以前两者是没有清晰的界限的,数据与呈现分离的分离,有利于分工合作、减少非技术人员对页面的修改造成的Web应用程序错误、提高效率、也更加适用于现在的发布系统。也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理。

(2)交互模式

在同步工作方式中,当我们需要改变页面中的一些数据,并要求服务器端做一些变化时,要等整个页面被传过去然后再传回来,才能被看到。而使用Ajax技术之后,我们只需要把有变化的那部分的请求发过去,服务器端获取之后,处理并只将这部分传回来,因此性能大大提高显著。具体来说,首先,我们不必传那么多的数据,其次,可以增加服务的针对性。比如,页面有好多东西,而我们只想看一下天气预报,那么要做的事,提交给服务器我们所位置,想看一下这里的天气,返回所有数据是传统的服务器端交互机制和原来的FORM提交机制的应用方式。使用Ajax后,我们只提交且只获得关于天气的新数据。

具体地进行分析一下它们的区别:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评