`

Ajax缘何流行—来看看大象本身

阅读更多
  随着2005年Ajax这个名词的流行,关于Ajax技术本身的争论就一直喋喋不休。有些人为这种技术而激动,兴奋得投 入到Ajax的大潮中。有些人对Ajax大为诟病,认为其不过是一种炒作,其类似技术早已实现,毫无新意。也有些人还持一种观望的状态,等到大势所趋时, 才进行投入。

  总之,一个新兴事物的诞生之初,有不同的观点进行争论是很正常的现象。作者作为支持Ajax的一派,对这个新生事物,可以说是倾注了很多精 力。从最初的不懂,到略知一二,再到深刻认识,发现Ajax背后隐藏的趋势,多少有些亢奋。凭此文,希望能够把自己的观点,表达一二。

  Ajax在2005年异军突起,伴随着Web2.0,成为了本年度最为流行的名词之一。很多人看到这样一门技术,可能会很奇怪,感到很突兀。

  •   为什么会突然产生这样一种技术?
  •   类似的技术早就有,Ajax有什么突破?
  •   为什么这种技术如此盛行,并被某些人认为是一种趋势呢?

  如果你仅仅试图从Ajax本身去寻找这些问题的答案,你可能会一无所获。如果你仅能够看到Ajax本身,那就如同瞎子摸象、管中窥豹,不能领略 全局,当然也不能领会其意义。相反,如果你能够从一个更好的高度上去思考Ajax所带来的好处,把Ajax放到一个相关的语境中去体会,你就会有另一番发 现。

  与Ajax相连的,还有这么两个名词—RiA和Web2.0。

  什么是RiA?

  RiA就是Rich Internet Application的缩写。

  “Rich”代表功能强大,高交互性,高用户体验。

  “Internet”代表方便。应用程序部署方便,用户使用方便。跨系统,跨语言。

  其实RiA实际上一种基于Web的C/S架构(我称之为C/S/B)。由于有一个客户端,所以RiA应用可以提供强大的功能,让用户体验到高交 互性,高用户体验。同时,RiA又是基于Internet浏览器的应用,所以,用户使用RiA非常方便。理想来说,用户使用RiA应当像现在使用普通网页 一样方便。用户不需要安装任何的客户端软件,只要拥有浏览器。当用户通过浏览器发出指令,希望运行某种RiA应用程序时,一切都会飞快的建立在客户端机器 上,就像你在Web上点击一个页面一样。

  目前,典型的RiA的代表有如下几种技术:

  •   MS ClickOnce
  •   Sun Java Web Start
  •   Adobe Flash
  •   Ajax

  应该说,各大厂商均看到了RiA美好的未来,纷纷行动起来希望分一杯羹。只有Ajax技术在这些技术中有些特立独行。

  Ajax并不属于任何厂商,相反,Ajax代表的是一种开源的风格。由于Ajax所采用的各种技术要么是基于标准的,要么也没有被各大厂商所垄断,所以 Ajax真正是一个平民化的技术,谁都可以用它。同时,由于Ajax采用的各种技术基于现有的浏览器,所以兼容性最好。用Ajax技术建立的网站,目前均可以直接运行,不需要任何客户端的改变。

  其他的各种技术与Ajax比较起来,目前或多或少的还有些兼容性的问题。虽然这些技术功能强大,但是目前它们应用起来还并不是很方便。不过可以 看到,随着时间的推进,相信,未来还是属于功能更强大的一方。除非Ajax本身的功能有所加强。这样,就看Javascript的功力了。

  RiA实际上代表的是一种回归。

  最开始流行的C/S结构,因为功能强大,而且范围有限,不需要害怕部署问题。之后随着用户的增加,部署问题越来越大,导致B/S模式的产生。

  B/S模式虽然功能有限,但是却使用非常方便。从长期来看,方便的作用还是非常巨大的。功能可以不断增强,但是如果不方便,将吓走所有的客户。 实际上观察一下Web的发展,就会发现,如今百花齐放的Web开发技术,其目的都是为了提高B/S架构的交互性,让他更能适应需要而已。

  不过,随着目前越来越多的应用需要一直到Web上,人们终于发现B/S模式的缺点。各种技术上的硬性问题均限制着B/S模式的发展。从最基本的请求/相应模型, HTTP协议,到所有负载均运行在服务器上的事实,让我们迫切需要一种方式来提高Web的交互能力,但同时又不能丧失它的使用方便性。

  于是,RiA诞生了。RiA就是基于浏览器的C/S结构。它将部分的服务器负载转移到客户端,同时又不会丧失使用和部署上的方便性。所以说,RiA就是一次回归,只不过这次回归我们没有原地不动,相反,我们找到了最佳结合点。如图1所示:

  图1、RiA就是一种回归

  但是,我们知道了RiA是一种回归。可是,为什么RiA会盛行呢?这就需要我们把RiA放到Web2.0的环境中去思考。

  什么是Web2.0?

  目前,对于Web2.0并没有明确的定义。在《What Is Web 2.0》这篇文章里,对Web2.0应用所需要具备的各种特点进行了总结,并且提了出来。

  •   Services, not packaged software, with cost-effective scalability
  •   Control over unique, hard-to-recreate data sources that get richer as more people use them
  •   Trusting users as co-developers
  •   Harnessing collective intelligence
  •   Leveraging the long tail through customer self-service
  •   Software above the level of a single device
  •   Lightweight user interfaces, development models, AND business models

  虽然有这么多特性,但是Web2.0背后最本质的东西就只有两点:

  1.   软件向服务化发展,向平台化发展
  2.   Web由原来“Publisher”的观点,发展成“Participation”的观点。

  正是基于这两点,Web2.0时代迫切需要一种使用方便,高交互性的应用程序,而此重任,就落在了RiA身上。

  通过图2,你可以看到由Web1.0到Web2.0的变化。

  图2、Web1.0向Web2.0的演变

  还是在《What Is Web 2.0》那篇文章里,勾勒出了一幅Web2.0的Meme Map。这张图的中心代表的是Web2.0的核心概念,而旁边是Web2.0概念的延伸。在这张图里,我试图勾勒出一些迫切需要RiA的特征点。实际上,你可以看到,在Web2.0的Meme Map里,到处充满了RiA的倩影。如图3所示:

  图3、Web2.0中的RiA倩影

  看看大象本身

  介绍了这么多,让我们总结一下。

  随着软件和互联网的发展,需求导致一种新的计算模型出现。这种计算模型的特色就是,软件逐渐的有前台推向后台,以平台的方式提供服务,让用户在前台表演。

  计算模型的变化,导致Web2.0的出现。尽管仅仅是开始,但是,从Web2.0的身上你依然可以依稀看到这种变化的趋势。不过Web2.0要想有如此变化,要想让用户参与进来,就必须提供一个用户功能强大的,使用方便的用户接口(UI)。

  于是,需求导致了RiA的出现。RiA提供了一个满足需求的用户接口,使得大家可以参与到Web2.0中来。但是,RiA要想应用起来,可能还需要一个过程。

  于是,几种RiA技术中,目前使用起来最合适的Ajax凸现出来。正是由于Ajax出色的兼容性,让他走到了历史的前台。有了它,我们开始了一场新的革命。

  图4显示了这些名词之间的关系。把它们放在一起看,也许你会发现不一样的东西。

  图4、Ajax、RiA与Web2.0

  未来的样子

  当我走在北京的街头,我在想,如果我有一台智能手机,可以访问百度的map服务,也许我就不会像现在这样担心迷路了。实际上,类似的例子还有很多。如果Web2.0的明天已经到来,我们的生活会发生很多改变。

  我不知道,尽管我很想知道。如果我真的能够看到未来的样子,再具备一些必要的执行力的话,也许我就是下一个比尔。不过,看到目前的这一点,已经令我非常兴奋。不管怎么样,我们都有权利想象。也有权利,用我们的手去改变世界。

  怎么样?开始吧?Let’s do it!

分享到:
评论

相关推荐

    AJAX原理 原理 AJAX

    AJAX技术的流行得益于Google的大力推广,正是由于Google Earth、Google Suggest以及Gmail等对AJAX技术的广泛应用,催生了AJAX的流行。而这也让微软感到无比的尴尬,因为早在97年,微软便已经发明了AJAX中的关键技术...

    5个ajax系统源码(都看看ajax怎么实现的)

    总的来说,这些Ajax系统源码展示了如何利用Ajax技术提高Web应用的交互性和效率。通过深入学习这些源码,开发者不仅可以理解Ajax的工作原理,还能掌握如何在实际项目中有效运用Ajax,提升用户体验,优化系统性能。...

    深入浅出Ajax(Head Rush Ajax) 源码 书中代码

    书中提供的源码涵盖了这些章节中的实例和示例,读者可以通过实际运行和修改代码来加深对Ajax的理解。这些源码通常会包括: - 用JavaScript创建和管理XMLHttpRequest对象的脚本 - 处理各种HTTP请求和响应的函数 - ...

    ajax代码 ajax代码

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,因为它...

    Java Ajax分页,jsp ajax分页

    接下来,我们来看JavaScript部分。在前端,我们需要编写一段JavaScript代码来监听用户交互,例如点击分页按钮。当用户触发分页事件时,这段代码会使用AJAX发送请求到后台Servlet。请求可能包含当前页数、每页显示的...

    AjaxRequest(Ajax使用包)

    1. **JavaScript**: 驱动Ajax的核心语言,通过创建XMLHttpRequest对象来发送异步请求到服务器。 2. **XMLHttpRequest对象**: JavaScript内置的对象,允许开发者在后台与服务器交换数据,而不会中断用户的交互。 3. *...

    Ajax流行应用源代码

    首先,我们来看文件上传。在传统的网页表单提交中,用户上传文件会导致整个页面刷新,而Ajax技术可以实现无刷新上传。通过创建XMLHttpRequest对象,监听其状态变化,当文件上传完成后,服务器返回处理结果,前端再...

    jquery+ajax例子

    在这里,我们将深入探讨基于jQuery的Ajax应用,以"jQuery+Ajax例子"为标题,结合项目描述和标签,我们来详细讲解这些技术。 1. **jQuery简介** jQuery由John Resig在2006年创建,旨在使JavaScript编程变得更加简单...

    Ajax(Ajax使用js包)

    使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤

    ajax教程

    **Ajax 教程** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其是在数据...

    谷歌浏览器插件—— Ajax Interceptor

    从压缩包文件名“ajax-interceptor-master”来看,这可能是项目的源码仓库。通常,它会包含`src`目录下的源代码,`manifest.json`扩展配置文件,以及其他资源文件。开发者可以通过阅读源码了解其内部工作原理,甚至...

    ajax调用xml ajax调用html

    ajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用...

    Ajax详解Ajax详解

    不错的Ajax教程,大家可以下来看看,不错的Ajax教程,大家可以下来看看不错的Ajax教程,大家可以下来看看不错的Ajax教程,大家可以下来看看

    php+ajax例子

    标题中的“php+ajax例子”指的是使用PHP服务器端语言与AJAX(Asynchronous JavaScript and XML)客户端技术结合的示例应用。在Web开发中,PHP通常用于处理服务器端逻辑,而AJAX则允许网页在不刷新整个页面的情况下,...

    ajax实例

    "此多为HOTAJAX下在而来的实例"可能指的是一个特定的Ajax库或框架,名为HOTAJAX。虽然这个名字在网络公开资源中没有找到对应的信息,但通常这样的框架会提供简化Ajax调用的API,使得开发者能更便捷地实现...

    AJAX流行功能模块(实例)

    以下是对AJAX流行功能模块及其相关知识点的详细说明: 1. 异步数据交换:AJAX的核心是XMLHttpRequest对象,它允许JavaScript在后台与服务器进行通信。通过这个对象,开发者可以发送HTTP请求,获取服务器响应,并在...

    ajax 60分钟入门

    AJAX开发简略 两个文件 想了解ajax的朋友可以看看 还是很不错的

    ajax+json实例

    **Ajax+JSON 实例详解** 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术已经成为提升用户体验的重要工具,它允许网页在不刷新整个页面的情况下与服务器进行数据交互。结合JSON(JavaScript Object ...

    AJAX各种特效演示

    7. jQuery和其他库的使用:jQuery是一个流行的JavaScript库,简化了AJAX调用和DOM操作。它提供了一套简洁的API,使得开发者更容易实现AJAX特效。此外,还有许多其他库,如axios和fetch API,也为AJAX请求提供了便利...

Global site tag (gtag.js) - Google Analytics