快捷搜索:

AJAX:开发者新的技术天地介绍

基于XML的异步JavaScript,简称AJAX,是当前Web立异(称为Web2.0)中的一个王冠。谢谢组成AJAX的各类技巧,Web利用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于网页的Web利用到基于数据的利用的转换。在基于数据的利用中,用户需求的数据如联系人列表,可以从自力于实际网页的办事端取得并且可以被动态地写入网页中,给迟钝的Web利用体验着色使之像桌面利用一样。

虽然大年夜部分开拓职员在以前应用过XMLHttp或者应用Iframe来加载数据,但仅到现在我们才看到传统的开拓职员和公司开始采纳这些技巧。就像新的编程说话或模型伴跟着更多的苦楚,开拓职员必要进修新的技术及若何最好使用这些新技巧。

AJAX模式

许多紧张的技巧和AJAX开拓模式可以从现有的常识中获取。例如,在一个发送哀求到办事真个利用中,必须包孕哀求顺序、优先级、超时相应、差错处置惩罚及回调,此中许多元素已经在Web办事中包孕了,就像现在的SOA。AJAX开拓职员拥有一个完备的系统架构常识。同时,跟着技巧的成熟还会有许多地方必要改进,分外是UI部分的易用性。

AJAX开拓与传统的CS开拓有很大年夜的不合。这些不合引入了新的编程问题,最大年夜的问题在于易用性。因为AJAX依附浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时机能一样紧张了。这些问题中的大年夜部分滥觞于浏览器、办事器和技巧的组合,是以必须理解若何才能最好的应用这些技巧。

综合各类变更的技巧和强耦合的客户办事端情况,AJAX提出了一种新的开拓要领。AJAX开拓职员必须理解传统的MVC架构,这限定了利用层次之间的界限。同时,开拓职员还必要斟酌CS情况的外部和应用AJAX技巧来重定型MVC界限。最紧张的是,AJAX开拓职员必须禁止以页面聚拢的要领来斟酌Web利用而必要将其觉得是单个页面。一旦UI设计与办事架构之间的范围被严格区分开来后,开拓职员就必要更新和变更的技巧聚拢了。

时候想着用户

AJAX的最大年夜机遇在于用户体验。在使利用更快相应和立异的历程中,定义Web利用的规则正在被重写;是以开拓职员必须更重视用户。现在用户已经徐徐习气若何应用Web利用了。例如用户平日盼望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在突破这种长光阴的状况。是以用户必要从新体验按钮点击的相应了。

可用性是AJAX另人激动的地方而且已经孕育发生了几种新颖的技巧。此中最惹人注目的是一种称为“黄色隐出”的技巧,他在数据更新之前时将用户界面变为黄色,更新完成后立即规复原本的颜色。AJAX开拓职员将用户从Web利用的负载中解放出来;小心地使用AJAX供给的富厚接口,不久桌面开拓职员会发明AJAX是他们的偏向。

几种对象和技巧

跟着AJAX迅速地惹人注目起来,我想开拓职员对这种技巧的等候也迅速地增添。就像任何新技巧,AJAX的兴旺也必要一全部开拓对象/编程说话及相关技巧系统来支撑。

JavaScript

如名字所示AJAX的观点中最紧张而最被漠视的是他也是一种JavaScript编程说话。JavaScript是一种粘合剂使AJAX利用的各部分集成在一路。在大年夜部分光阴,JavaScript平日被办事端开拓职员觉得是一种企业级利用不必要应用的器械应该尽力避免。这种不雅点来来自曩昔编写JavaScript代码的经历:复杂而又易掉足的说话。类似的,他也被觉得将利用逻辑随意率性地漫衍在办事端和客户端中,这使得问题很难被发明而且代码很难重用。在AJAX中JavaScript主要被用来通报用户界面上的数据到办事端并返回结果。XMLHttpRequest工具用来相应经由过程HTTP通报的数据,一旦数据返回到客户端就可以立即应用DOM将数据放到网面上。

XMLHttpRequest

XMLHttpRequest工具在大年夜部分浏览器上已经实现而且拥有一个简单的接口容许数据从客户端通报到办事端,但并不会打断用户当前的操作。应用XMLHttpRequest传送的数据可所以任何款式,虽然从名字上建议是XML款式的数据。

开拓职员应该已经认识了许多其他XML相关的技巧。XPath可以造访XML文档中的数据,但理解XML DOM是必须的。类似的,XSLT是最简单而快速的从XML数据天生HTML或XML的要领。许多开拓职员已经认识Xpath和XSLT,是以AJAX选择XML作为数据互换款式故意义的。XSLT可以被用在客户端和办事端,他能够削减大年夜量的用JavaScript编写的利用逻辑。

CSS

为了精确的浏览AJAX利用,CSS是一种AJAX开拓职员所必要的紧张武器。CSS供给了从内容平分离利用样式和设计的机制。虽然CSS在AJAX利用中扮演至关紧张的角色,但他也是构建创建跨浏览器利用的一大年夜阻碍,由于不合的浏览器厂商支持各类不合的CSS级别。

办事器端

但不像在客户端,在办事端AJAX利用照样应用建立在如Java,.Net和PHP说话根基上机制;并没有改变这个领域中的主要要领。

既然如斯,我们对Ruby o­n Rails框架的兴趣也就迅速增添了。在一年多前,Ruby o­n Rails已经吸引了大年夜量开拓职员基于其强大年夜功能来构建Web和AJAX利用。虽然今朝还有很多快速利用开拓对象存在,Ruby o­n Rails看起来已经贮备了简化构建AJAX利用的能力。

开拓对象

在实际构建AJAX利用中,你必要的不光是文本编辑器。既然是JavaScript非编译的,他可以轻易地编写和运行在浏览器中;然而,许多对象供给了有用的扩展如语法高亮和智能完成。

不合的IDE供给了对JavaScript支持的不合等级。来自JetBrains的IntelliJ IDEA是一个用来JavaScript开拓的更好的IDE,虽然许多开拓职员也爱好Microsoft’s Visual Studio产品(承诺会在最新的版本中改良对AJAX的支持)。Eclipse包孕了两个免费的JavaScript编辑器插件和一个商业的来自ActiveStat的Komodo IDE。

另一个JavaScript和AJAX开拓中的问题是调试艰苦。不合的浏览器供给不合的平日是暗藏的运行时差错信息,而JavaScript的缺陷如双重变量赋值(平日是因为缺少数据类型)使得调试加倍艰苦。在AJAX的开拓中,调试就更繁杂了,由于其必要标识究竟是客户端照样办事端孕育发生的差错。在以前,JavaScript调试的措施是删除所有代码然后一行行的增添直履新错呈现。现在,更多开拓职员回到为IE筹备的Microsoft Script Debugger和为Mozilla浏览器筹备的Venkman。

浏览器兼容性

JavaScript编程的最大年夜问题来自不合的浏览器对各类技巧和标准的支持。构建一个运行在不合浏览器(如IE和火狐)是一个艰苦的义务。是以几种AJAX JavaScript框架或者天生基于办事端逻辑或标记库的JavaScript,或者供给相符跨浏览器AJAX开拓的客户端JavaScript库。一些盛行的框架包括:AJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.

这些框架给开拓职员更多的空间使得他们不必要担心跨浏览器的问题。虽然这些框架提升了开拓职员构建利用的能力,但因为厂商已经开拓了更细节的用户界面的打包组件办理规划,是以在AJAX组件市场中必要斟酌一些其他身分。例如供给通用用户界面的组件如组合框和数据栅格的几个厂商,都可以被用来在利用中创建优越的经由过程类似电子数据表要领来查看和编辑数据的体验。但这些组件不仅是封装了组件的用户界面而且包括与办事端数据的通讯要领,这些组件平日应用基于标记要领来实现如ASP.Net或JSF控件。

瞻望

近来IE和火狐之间的浏览器之争变得火热起来,是以AJAX开拓职员必要足够敏捷的作出反映。关键点在一些问题如CSS或XML,虽然各类浏览器形成采纳最新标准的不合阵营(如Mozilla拥抱SVG和E4X标准及在最新火狐BETA版本中应用XUL,而微软应用自己的XAML技巧)。所有这些技巧代表当前AJAX主流JavaScript和XML的市场偏向改变。

总的来说,AJAX开拓职员必须尽快地跟进最新的技巧并使用高产的对象集。成功的AJAX开拓职员还必要留神他们的应用者以避免将任何问题扩大年夜化。并且AJAX开拓职员还必要持续地立异来创建增强Web利用易用性的新措施。

您可能还会对下面的文章感兴趣: