| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> Ajax教程 >> 文章正文  
 AJAX有没有未来?
 

AJAX有没有未来?

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:AJAX有没有未来?

    【IT168 专稿】AJAX是若干成熟技术的组合,旨在让用户从Web应用中获得更加满意的用户体验。本文回顾了企业应用体系结构的进化历程,试图阐述AJAX是B/S架构发展的必然产物,但是,由于AJAX赖以生存的JavaScript编程语言的先天不足,AJAX似乎又前途堪忧。本文作者从中间件的角度,对AJAX的未来作出了自己的预测。

    1. 什么是AJAX

   AJAX的全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。这是一种多项成熟技术的组合,其目的是让Web应用获得与用户快速、即时交互的能力。AJAX所组合的技术,包括:
    • JavaScript,Java脚本语言(注意,此Java非Sun公司的Java)
    • DHTML,Dynamic HTML,动态HTML
    • XML,Extensible Markup Language,可扩展标记语言
    • CSS,Cascading Style Sheets,层叠样式表单
    • DOM,Document Object Model,文档对象模型
    • 微软的称为XMLHttpRequest的对象

    在AJAX技术下,用户会感觉到网页与普通桌面应用一样,响应迅速,而不是像传统网页那样,任何操作都需要等待页面的刷新。AJAX是如何做到这一点的呢?有两个秘密:第一,其实AJAX也会刷新页面,只不过,AJAX可以只刷新部分页面,而不是整个页面;第二,AJAX的页面刷新是异步的,就是说,用户可以继续他的其他操作,而不必等候刷新完成。

    当用户浏览一个基于AJAX的Web应用时,用户的请求被提交给一个称为AJAX引擎(AJAX Engine)的代理,这个AJAX引擎负责接收用户请求,从Web服务器上获取响应,并更新浏览器内容。形象地说,传统的Web应用中,浏览器是直接和Web服务器打交道的,而在AJAX应用中,浏览器和Web服务器之间出现了一个来回跑腿的“中介”,而且这个 “中介”相当的勤快,所以,能够给浏览器提供更好的服务,从而使用户获得更满意的应用体验。

    AJAX应用的例子,Google Map是一个典型。打开Google Map网站(http://maps.google.com),会看到一张地图,对地图进行放大、缩小以及拖动等操作,网页的响应十分迅速,看起来好像浏览器事先加载了整张地图。其实,浏览器只是根据你的操作,向服务器请求你所看到的那些数据,并异步地更新你的浏览器内容,这一切,都拜AJAX所赐。

    JavaScript和微软的XMLHttpRequest对象,是AJAX 引擎的两条腿。当与浏览器交互时,AJAX引擎使用JavaScript语言;而当与Web服务器交互时,则使用微软的XMLHttpRequest对象。由于AJAX引擎依赖微软的XMLHttpRequest对象技术,所以,早期只有微软的IE浏览器支持AJAX。现在,随着采用AJAX技术的Web应用的不断涌现,所有主流的浏览器,例如Firefox、Netscape、Opera、Safari等,也都支持AJAX了。

2. 企业应用体系结构的进化历程

    在笔者看来,AJAX的出现,并非偶然。为了说明这一点,让我们来回顾一下,计算机应用体系结构的发展历史,这或许有助于我们揭示AJAX的来历。

    最早的计算机应用,是单机程序,运行在一台计算机上,那时还没有计算机与计算机之间相互通信的概念,因为单机应用已经足以满足人们的需要。因此,两台计算机即使放在同一个实验室,也是“机”犬相闻,老死不相往来。

    人的欲望是永远也不会满足的,单机应用没有持续多久,两台计算机之间交换数据的需求,就随着计算机应用范围的扩展而出现了。在PC领域,最初的计算机数据交互形式是串口通信,后来,随着Novell公司著名的NetWare网络技术的推出,运行在两台不同机器上的程序,有了可以更方便地交互的渠道,于是出现了客户机和服务器,即所谓的Client/Server结构,简称C/S结构。C/S结构因其将应用划分为两个部分的特点,也被称为“二端”体系结构。

    C/S结构流行若干年后,人们发现,仅仅划分“客户端”和“服务器”两个角色,已经不敷使用,因为随着应用复杂度的不断增加,客户端和服务器都变得越来越庞大,于是,三端体系结构冒了出来,在服务器和客户机之间增加了一个称为“中间件(MiddleWare)”的“端”。在三端体系结构中,原来散布在“客户端”和“服务器”上的一些功能(主要是应用逻辑),慢慢转移到了中间件上,这样就有效地减轻了“客户端”和“服务器”日益沉重的负担,系统的架构重新趋于平衡。

    三端体系结构现在仍是企业应用的事实上的标准,这是由三端体系结构的适应性决定的。三个端中,中间件最为灵活,一方面可以担负一部分客户端的任务,有助于打造低成本的“瘦”客户端;另一方面,一些通用的服务也可以从服务器上挪到中间件上,让服务器的功能更加专一,以提高性能。中间件技术,作为三端体系结构的核心技术,催生了很多以中间件为主要产品的软件公司,激烈的竞争,使得中间件技术日趋成熟。

    此后虽然出现了所谓的多端(nTier)体系结构,本质上还是三端的,其区别只是一个应用中包含了不只一个中间件和服务器,而是多个中间件,多个服务器,甚至多种客户端。

    3. AJAX是B/S结构向三端体系结构进化的产物吗

    在“客户端/服务器”体系结构向“客户端/中间件/服务器”体系结构演变的过程中,随着互联网技术的广泛应用,一种更简便的体系结构出现了,那就是所谓的“浏览器/服务器(Browser/Server)”体系结构,简称B/S结构。B/S结构一经出现,就因其无需开发客户端,能大幅度降低企业应用中客户端部署和维护的成本等优点,迅速获得了软件企业及其客户的青睐。现在,B/S结构是最流行的应用体系结构,不论是大型的企业应用,还是小型的个人应用,B/S结构都是首选的体系结构,几乎成了IT界的“默认”选择,甚至我们在谈起某某应用时,都不需要特别说明是什么体系结构了。

    如果将B/S结构看作是C/S结构的变种(可能有人不同意,呵呵,只是笔者个人见解而已),那么,我们可以发现,B/S结构不是三端体系结构。在B/S结构中,作为“客户端”的浏览器和作为“服务端”的Web服务器,是直接交互的,并没有中间件的介入,企业应用的业务逻辑,要么驻留在服务器(包括Web服务器、数据库服务器等)上,要么以浏览器作为容器,没有其他去处。因此,从“端”的角度看,B/S结构其实是“二端”的,像C/S结构一样。

    如果这个论点是成立的,那么,C/S结构从“二端”向“三端”的演变,是否预示了,B/S结构也会按照同样的方式进化,从而在浏览器和客户端之间,产生出一个“中间件”呢?

    AJAX的出现,似乎是对这种预示作出的响应。仔细观察,我们可以在AJAX身上发现中间件的某些特征。首先,AJAX所承载的功能,原本是分布在Web服务器和浏览器上的,AJAX的介入,减轻了客户端和服务器的负担,许多原本需要重载整个页面的请求-响应处理,现在只需重载部分页面了;其次,AJAX部分地接管了浏览器和Web服务器的通信,而通信拦截是中间件的重要特征之一。一方面,AJAX对浏览器的请求进行预分析,另一方面,AJAX对Web服务器的响应进行预处理,AJAX在浏览器和Web服务器之间,扮演了一个“中介”的角色,与三端体系结构中的中间件非常相似。

    有趣的是,中间件的出现时机和AJAX的出现时机,也大致相同。C/S结构进入企业应用领域若干年后,中间件出现了,而AJAX的出现,也是在B/S结构开始流行后的若干年。具体的时间长度已经不可考证了,不过,可以留意到的是,中间件是在C/S结构应用大量涌现,客户端和服务器日益膨胀的背景下诞生的,而AJAX也是在B/S结构应用如雨后春笋般冒出,网页上Flash和广告群魔乱舞,用户不再满足于平淡和迟钝的应用体验的情形下,在Web应用中崭露头角的。

    4. AJAX有没有未来

    如果问一下,Web世界里谁是炙手可热的红人,不少人一定会选择AJAX了。不错,AJAX现在确实非常火爆,自从Google开创了AJAX应用的先河之后,在Web领域,应用不论大小,程度不分高低,只要和Web沾边的,人也好物也好,都要披上一件AJAX的时尚外衣,以示自己没有落到潮流的后面。AJAX就像一桌美味佳肴,虽然选材未必精良,但色香味俱全,在这样的诱惑下,程序员们要保持冷静的态度和清醒的头脑,殊非不易。其实,洗净AJAX表面的各味调料,将AJAX的真材实料展示在食客的眼前,我们就会感觉到,AJAX的未来并不明朗。

    理由之一,虽然从企业应用体系结构发展的历史来看,AJAX的作为B/S结构的中间件出现,有其必然性,但别忘了,这是有假设条件的,这个假设条件就是,B/S结构可以作为二端结构来看待。这个假设不是所有人都同意的,因为也有一种观点,是将B/S结构看作三端结构。很简单,只要将Web服务器往前提一提,B/S结构就变成三端结构了:浏览器是客户端,数据库是服务器端,而Web服务器是中间件。这是非常典型的Web企业应用架构,可是在这个架构下,AJAX没有地位。AJAX的一部分在浏览器,另一部分在Web服务器,并没有独立出来,它必须依附浏览器和Web服务器而存在,因此,AJAX还不能单独成为一个端,当然,也就更谈不上成为中间件了。

    理由之二,即便大家都同意B/S结构可以视为二端结构,AJAX想要攀升到中间件的地位,仍然面临许多悬而未决的问题。首先,AJAX赖以生存的编程语言是JavaScript,这是一个脚本语言,是解释性语言,虽然简单、灵活并且容易上手,但具有解释性语言的先天不足,比如,执行效率就是JavaScript的一个大问题,在浏览器上玩些花样尚可,如果要作为中间件的编程语言,那就有点勉为其难了;其次,脚本语言结构管理能力的低下,也是JavaScript成为中间件编程语言的障碍,用JavaScript很难写出像C++或Java那样规范、可靠、合理而优美的程序,而且,现今广为接受的面向对象的编程思想,在JavaScript下要运用起来,似乎也不是特别的自然。

    如此看来,AJAX的未来确实非常迷茫,即使受到越来越多AJAX支持者的追捧,但如果想要走得更远,似乎也心有余而力不足。AJAX问题的症结,就在于JavaScript语言。对于这种语言,一直有两股势力在对抗。一种是看好JavaScript,认为其简单易学、灵活多变而且功能强大;另一种则对JavaScript不屑一顾,甚至根本不愿意承认它是一种编程语言。我见过一些非常资深的程序员,对JavaScript的态度,可以用“仇视”二字来描述。一种语言同时受到如此截然相反两种对待,我所知道的,也就只有JavaScript了。

     JavaScript遭受到的如此冰火两重天的待遇,注定了建立在JavaScript之上的AJAX的尴尬地位。AJAX的未来,很大程度上取决于JavaScript的前途。胜者王侯败者寇,现在AJAX最关心的,莫过于JavaScript面前水火不相容的两股势力,谁会是最后的赢家。AJAX和JavaScript,一根线上的两只蚂蚱,它们的未来,已经牢牢地绑定在一起,谁又能把它们分开呢?


AJAX有没有未来?
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.