话题馆<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Web 2.0的快速窜升无疑是近年来IT领域的最重要趋势之一,而Ajax作为最重要的Web 2.0开发框架正成为开发人员追逐的焦点。为了让读者更加深入的了解Ajax在软件开发领域的变革性力量,我们在本期话题馆中邀请到了离子翼信息安全实验室的软件架构师张昕楠来共同探讨有关Ajax的一些问题。

 

 

董师傅:近两年Web 2.0正成为网络用户关注的焦点,而Ajax这个名词也被频繁的与Web 2.0一并谈论,不过一个令人有些费解的现象是,并不是所有的用户都能够清楚的说出Ajax到底是什么。大家对Web 2.0本身也是众说纷纭,很难下一个准确的定义,我觉得在这方面两者倒颇有异曲同工之处。

张昕楠:这个现象确实有一定的普遍性,原因也是多方面的。首先也是最重要的一个原因在于大家往往只从技术角度来解释Ajax,而事实上Ajax并不是一个单一的技术概念。在技术范畴之外,Ajax还包含了很多Web用户体验方面的元素。这也是为什么舆论普遍认为Ajax是一种Web 2.0技术的原因,毕竟Web 2.0的创新价值有很大一部分来自于对用户体验和用户作用的重视。

 

董师傅:以管窥豹的方式确实在Ajax的认识上造成了不少的误解,这可能就是那些以“新技术”的角度了解Ajax的用户不得门径的原因吧。

张昕楠:应该说Ajax首先就不是一项纯粹的技术,而更近似于一个技术框架。同时,Ajax体系当中也并没有什么新的技术元素,其核心是JavaScript技术,一种以往被认为与企业应用绝缘而只适用于在客户端展示一些“小把戏”的编程语言,而XMLXHTMLDOMXMLHttpRequestCSS等经常被用于实现Ajax的技术元素也是得到多年应用的成熟技术。

 

董师傅:不过就是这些“常见”技术的创造性组合为我们带来了令人叹服的用户体验,可见模式的创新是多么的具有冲击性。

张昕楠:Ajax彻底颠覆了传统Web应用在用户交互方面的模式,这是不可否认的一点。在传统的Web体验当中,用户已经习惯了在请求服务器数据之后的等待和显示这些数据时的页面刷新,这种交互方式是低效和不连贯的。而Ajax所倡导的方式则能够大大优化用户的使用感受,由于在服务器和浏览器程序之间的数据传递交由JavaScript控制,开发人员得以跳出以往严格的请求应答模式从而构建更具用户友好性的Web应用。举一个简单的例子,当用户请求新的数据内容时,传统的Web机制只能等待服务器将全部数据返回,然后刷新并重新显示整个页面;而Ajax则只向请求那些需要改变的内容,同时只改变那些需要改变的区域,而并不对整个页面进行刷新。这种能力不但使“零刷新”成为了Ajax带给用户的最主要印象,而且由于数据传递量的有效降低使得Ajax成为缓解Web性能瓶颈的重要武器。

 

董师傅:从这个角度来看,Ajax确实称得上Web 2.0技术的典型代表,这不禁让我想起了Windows操作系统对DOS操作系统的替代。除了在用户接口上展示出更大的吸引力之外,系统核心的变革也在发挥重要的作用。

张昕楠:窗口操作系统在外观和使用上确实带来了巨大的变革,但是用户体验的巨大提升与内在功能的支撑是分不开的,Ajax之于Web也是如此。回顾WindowsDOS的替代,Ajax正在经历同样的过程。除了在用户接口上展示出更大的吸引力之外,Ajax第一次使Web用户接口实现了多任务。由于页面可以不需要全部刷新,在一个区域正在等待数据返回并改变自己外观的时间里,用户则可以不必等待而继续执行其它操作;相对的,用户向服务器提交数据也不必等待数据全部被传送到服务器再进行其它操作。也就是说,用户与浏览器的操作交互、浏览器与服务器的数据交互是可以“异步”进行的,这也是Ajax这个名字的由来,Ajax的英文全称是Asynchronous JavaScript and XML

 

周师傅:Ajax对用户群体的号召力已经获得了很多的证明,应用随需求而动,Ajax也正成为开发群体新的追逐目标了,相信在Web开发领域一定会掀起不小的波澜。

张昕楠:究其本质来看,Ajax对于传统开发阵营来讲并不是一种颠覆性的冲击,而更贴近于一种增强。基于Web应用体验的改善以及为交互方式提供的更多可能性,会有越来越多的Web应用程序采用Ajax机制来进行实现。目前已经涌现出大量成熟的Ajax实现,这些具体的实现或者是自成体系的开发框架,或者是与特定编程语言的接驳,事实上JavaPHPASP等主流Web开发平台已经都可以与Ajax框架进行良好的挂接。其实话说回来,无论是Ajax的模式还是所依托的具体技术在很多年前就已经出现了,但之所以到今天才获得应用和认同,说明再先进的东西也只有在被需要的情况下才会得到真正的发展。

 

周师傅:那么Ajax是否已经是一条康庄大道了呢?按照IT界的发展规律来看,至少目前还没有出现过完美的技术。

张昕楠:按照我的经验,目前Ajax还处于前景与风险并存的阶段。虽然在应用领域Ajax已经取得了一定的进展,并且在用户认知度和影响力上也具有了相当的积累,但是其发展道路仍不能说一马平川。首先,Ajax并不是一支独秀,包括MacroMediaFlex等很多技术体系都在尝试提供更强的用户体验,随着Web异步交互的需求成长,会有越来越多的技术涌现出来。而目前Ajax的实现也是多种多样,不能尽早的形成标准无疑将分散Ajax的发展力量。另外,不但用户群体中存在着对Ajax的认识模糊,即使是专业的开发人员,对Ajax的理解也千差万别。很多开发人员将Ajax视为一支不折不扣的潜力股、软件开发领域的下一个Java,这都过分的强调了Ajax在市场效应方面的作用,反而在一定程度上扼杀了Ajax的真正价值。与其进行浮躁的期待和冲动的吹捧,切实的学习和发挥Ajax在用户交互方面的优点无疑是现阶段的一个更明智的选择。