|
什么是AJAX
1 [8 b' m5 w$ X5 _现在应聘网站开发,势必会遇到AJAX这个词语。到到底什么是AJAX呢?
& b! H9 I/ g3 T2 g cAJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 6 o1 b t, Q) t9 `& F* _% k
* ?( \1 l! e+ O2 X& ]- c8 h9 R$ I
主要包含了以下几种技术: & q- b5 o5 _5 r' Q1 T7 f1 K! J4 \1 H' w
' h" s/ ?2 p5 O
Ajax(Asynchronous JavaScript + XML)的定义 0 f8 I9 ~5 U, h, A% y) y9 T1 ?
l( d& }6 d+ C8 r4 _; U基于web标准(standards-based presentation)XHTML+CSS的表示; / k5 A9 a6 N1 ^
: G% T$ S6 J. C5 a2 A3 \
使用 DOM(Document Object Model)进行动态显示及交互;
4 H/ E n7 @ a( r' g# z
* A- {6 K6 L$ {( C& l& I使用 XML 和 XSLT 进行数据交换及相关操作; 8 B7 }1 p' q2 m# @8 K# G
) J8 L5 @7 w3 [' J" [9 E
使用 XMLHttpRequest 进行异步数据查询、检索; . a' t4 y) w% j2 S
# D [- y* L( ]: ]# O: B ^
使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文a 1 q9 k* @) M& b8 r2 ~ t8 D
5 U) _& ]2 `9 G: \4 P1 y5 g6 U类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
* K# y. J6 x8 a; s y" u+ N0 _" t$ r" Q7 x8 h6 r
AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。1 W% D# ]" s1 p" _) w6 Z/ M
; P; }/ @' s! ` W& p0 V. b
与传统的web应用比较
4 E Y1 R7 r1 V- a% B- A4 G4 |' { O% c: c7 H
传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
" p! t# o/ s7 g/ W' R9 Q$ e
5 u: t4 J a' W+ `" k0 ]与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。% r& r5 i8 C6 u, s# I. l
9 h5 T# g; p: T6 [
Ajax应用程序的优势在于:# ~0 I# g! m& u+ w o
2 j, I4 n; \8 ?6 G$ d2 I1. 通过异步模式,提升了用户体验2 A2 t* H. o2 w" x8 j% n) K
9 }/ l g' ]. ^# R4 K( S
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用9 Y6 e* ~, n5 T, ?* v/ O* u$ b; t% L
) C1 M u* y3 W* z. M3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。) h' X5 X- ]$ m: J
/ | i# z& B, b# d6 hAjax的工作原理( d" w8 Z: y u0 ?7 ?
N6 U6 ^. t- O7 w9 f4 g$ C( O7 j) p Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
- w# M5 }2 \ ~- p% t7 U) a U% i
在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:
* G4 {9 Z6 e8 w5 n6 u: {( F
: u7 d) `2 ^ A, P 动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
2 L; w# _1 K, ?" f$ U6 q/ b' }6 a, O' e8 j
提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在某购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载整个页面的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。 消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
% {8 B& F2 Y, F直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
/ [$ M, l9 y6 |4 B5 i8 E i# l+ Z' C9 R$ V
一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。
# M3 a) l* ~% ? ], c
/ v1 n1 C, J6 x2 u7 m$ D4 I Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。/ z* z( r+ J2 D: Z7 q
1 j6 @, t* @; T4 [
熟悉Ajax的基本框架后,就可以着手去学习Ajax了。我给大家推家一下我的入门书人邮的《精通 Ajax---基础概念、核心技术与典型案例》。不知道书店还有没有,不过网上还能看到http://www.china-pub.com/38158。希望大家可以掌握这门技术。 |
评分
-
2
查看全部评分
-
|