精华内容
下载资源
问答
  • Ajax框架概述

    2009-12-16 21:54:00
    Ajax框架介绍 到此为止,你可能已经注意到,使用Ajax编程时有很多麻烦事。如果你要支持多个浏览器(现在还有谁只支持一个浏览器呢?),无疑会遭遇不兼容问题。单看一个简单的动作,比如说创建XMLHttpRequest对象的...

    Ajax框架介绍
      到此为止,你可能已经注意到,使用Ajax编程时有很多麻烦事。如果你要支持多个浏览器(现在还有谁只支持一个浏览器呢?),无疑会遭遇不兼容问题。单看一个简单的动作,比如说创建XMLHttpRequest对象的一个实例,这需要先进行浏览器测试。一旦开始尝试使用Ajax技术,你很快就会注意到要反复地完成同样的一些任务。当然,你可以收集一些常用代码库,甚至创建自己的框架。不过,做这个工作之前,需要先了解一下现在已经有些什么了。
      与所有优秀技术一样,Ajax已经催生出大量框架,有了这些框架,开发人员的日子好过多了。我们要强调一点,Ajax还很新,而且还在发展,框架领域也同样如此。几乎每天都有新来者,目前还看不出谁是最后的赢家。2003年6月之前,这方面的框架还不多,所以在以后的几个月可能还会有巨大变化。
      有些框架基于客户端,有些基于服务器端;有些专门为特定语言设计,另外一些则与语言无关。其中绝大多数都有开源实现,但也有少数是专用的。我们不会面面俱到地谈到每一个框架,而且也不可能深入分析提到的每个框架。我们的出发点很明确,就是让你对现在有些什么有所认识。在你读到本附录时,我们提到的一些工具包可能已经销声匿迹,另外的则可能刚刚创建。哪个框架最适合你?对于这个问题,只有你自己有发言权;不过,在框架领域稳定之前,你可以持一种保守的态度。甚至还有人在着力将各种框架合并在一起,等这个工作结束时应该会有好戏看!当你读到本书时,情况应该会更加明朗,但也许你还想了解一下目前的情况 。
      B.1 浏览器端框架
      下面几节介绍了一些浏览器端框架。
      B.1.1 Dojo
      Dojo是最老的框架之一,于2004年9月开始开发。这个项目的目标是建立充分利用XHR的DHTML工具包,并把重心放在可用性问题上。Dojo只有几个文件,不用处理XHR的建立,只需调用bind方法,并传入想调用的URL和回调方法即可。就这么简单。还可以使用bind方法来提交整个表单。
      Dojo有一个特性使它独树一帜,这就是它支持向后和向前按钮。尽管这个特性不一定在每个浏览器上都能用(遗憾的是,Safari就是一个异类),但你确实可以注册一个回调方法,在用户点击了向后按钮或向前按钮时触发这个方法。Dojo还提供了changeURL标记,力图解决使用Ajax所固有的书签问题。
      Dojo看上去是相对成熟的工具包之一,它把重点放在可用性上,这一点很不错。Dojo表现得相当稳定,在它身后还有一些支撑力量。Dojo的邮件列表相当活跃,多看一些文档可能更有帮助。可以在dojotoolkit.org得到更多相关信息。
      B.1.2 Rico
      。更多有关的信息请访问qooxdoo.oss.schlund.de。
      B.1.4 TIBET
      你觉得Ajax最早是什么时候出现的?根据对此的解释,也许会认为TIBET可能是现存最老的框架。根据文档所述,TIBET小组从1997年就开始开发这个工具包,他们的目标是提供企业级Ajax支持。TIBET看上去不只是包装了XMLHttpRequest对象,它还对Web服务和底层协议提供了支持,并且提供了Google、Amazon和许多其他常用服务的预置包装器。
      真正让TIBET卓而不群的是,它有一个完全交互式的基于浏览器的IDE,这能大大简化开发、调试和单元测试。更多有关的信息请访问www.technicalpursuit.com
      B.1.5 Flash/JavaScript集成包
      在Ajax之前,Flash很是风行,很多Web网站都建立在Flash平台上。那些曾对Flash狠下一番功夫的人不想完全放弃Flash,利用这个开源项目就能同时利用Ajax技术。这个工具包在所有主要浏览器上都能用,使得JavaScript能够调用ActionScript,ActionScript也能调用JavaScript。可以来回传递大量对象,包括日期、串和数组。
      Flash/JavaScript集成包的安装涉及一些JavaScript文件,以及两个用于Flash的库函数。从页面上调用ActionScript函数只需几行代码而已。有关的文档相当少,不过,如果你想使用Ajax访问Flash,这个工具包就很值得研究。更多有关的信息请访问weblogs.macromedia.
      com/flashjavascript/。
      B.1.6 Google AJAXSLT
      基于Google Maps的工作,Google AJAXSLT是使用XPath的XSL转换(XSLT)的JavaScript实现。XSLT可以把XML文档转换为其他语言,如HTML。AJAXSLT允许使用JavaScript在浏览器上直接完成这些转换。
      Google AJAXSLT在所有主要浏览器上都能工作,它是在BSD许可证下发布的。这个工具包很小,包括几个JavaScript文件,还有一些方便的测试页。Google AJAXSLT不是十全十美的,不过,如果Google Suggest有所提示,我们希望Google AJAXSLT的缺点能很快解决。因为Google是最先使用Ajax的网站之一,我们会很有兴致地看到在未来几个月它还会有所增加。更多有关的信息请访问goog-ajaxslt.sourceforge.net。
      B.1.7 libXmlRequest
      libXmlRequest框架也是比较老的一个框架,早在2003年就已经发布了。这个框架包括一个JavaScript文件,它相当于XMLHttpRequest对象的一个包装器,提供了两个重载的请求函数:getXml和postXml。另外,它有一些处理缓冲池和缓存的属性,还有一些工具函数处理常见的任务,如解析来自服务器的XML以及修改DOM。
      这个工具包能在哪些浏览器上运行,这一点还不是很清楚,而且有关的文档相当少。这个工具包版权归其作者Stephen W. Cote所有,其中没有提到许可问题。因此,只能用它帮助你产生灵感。更多有关的信息请访问www.whitefrost.com/index.jsp
      B.1.8 RSLite
      RSLite是远程脚本的一个实现,由Brent Ashley编写。从技术上讲,它没有利用作为Ajax核心的XMLHttpRequest对象,但是得到了更广泛的浏览器支持。如果你需要支持原来的浏览器,而这些浏览器不支持XMLHttpRequest对象,就可以试试RSLite。RSLite是相当轻量级的,已从2000年发展至今 。更多有关的信息请访www.ashleyit.com/rs/rslite/
      B.1.9 SACK
      SACK(简单Ajax代码包)开发为一个瘦包装器,包装了XMLHttpRequest对象。其作者Gregory Wild-Smith认为,其他的许多框架太过复杂,而且做了许多本不该它们完成的任务。所以他创建了SACK来简化Ajax的开发。SACK包括几个可以简化服务器调用的方法。比起具体创建适当的XMLHttpRequest对象实例来说,用更少的代码就能向服务器发送数据,并处理响应。
      SACK由一个JavaScript文件组成,其中包含很少的代码。SACK底层软件的发布得到了修改X11许可(也称为MIT许可),与大多数开源项目一样,它的文档并不多,不过,入门肯定还是绰绰有余的。SACK的真正强大之处在于它的简单性,如果你要找的是一个基本包装器,可以试试SACK。更多有关的信息请访问twilightuniverse.com/projects/sack/。
      B.1.10 sarrisa
      sarissa有一点是Ajax做不到的,它以一种独立于浏览器的方式对XML API提供了包装支持。利用这个框架,创建和使用XMLHttpRequest对象实在是小菜一碟(不用检查浏览器,它已经为你处理好了)。另外,sarissa还对使用DOM提供了支持。类似于Google AJAXSLT,sarissa也支持XSLT,它模拟了IE上的Mozilla处理器。
      sarissa只包括几个类,在GPL协议下发布。Mozilla/Firefox和IE都充分支持sarissa,只在Opera、Konqueror和Safari浏览器上有些函数不能用。更多有关的信息请访问sarissa.
      sourceforge.net/doc/。
      B.1.11 XHConn
      XHConn类似于SACK,它相当于XMLHttpRequest对象的一个简单包装器。你不用直接使用XMLHttpRequest对象,只需首先启动一个XHConn实例,与使用XHR同样的方法加以处理。也就是说,无需浏览器检查,并提供了一种简单的方法来确定浏览器是否支持XHR(这对于需要妥善降级的网站尤其方便)。
      XHConn在Safari、IE、Mozilla、Firefox和Opera上都能工作。类似于大多数Ajax框架,这是一个开源实现,在Creative Commons License协议下发布。XHConn是一个代码不多的文件,不过它确实做到了该做的事情——简化Ajax。更多有关的信息请访问xkr.us/
      code/javascript/XHConn/。
      B.1.12 jquery
      设计思想
      简洁的思想:几乎所有操作都是以选择DOM元素(有强大的Selector)开始,然后是对其的操作(Chaining等特性)。
      优点
      小,压缩后代码只有20多k(无压缩代码94k)。
      Selector和DOM操作的方便:jQuery的Selector与mootools的Element.Selectors.js比较,CSS Selector, XPath Selector(1.2后已删除)
      Chaining:总是返回一个jQuery对象,可以连续操作。
      文档的完整,易用性(每个API都有完整的例子,这是其它框架现在不能比的),而且网上还有很多其它的文档,书籍。
      应用的广泛,包括google code也使用了jQuery。
      B.2 服务器端框架
      以下介绍服务器端的框架。
      B.2.1 CPAINT
      CPAINT(跨平台异步接口工具包)在服务器端实现Ajax,它向客户返回文本或DOM文档对象,以便用JavaScript处理。CPAINT在大多数主要浏览器上都能用,而且支持远程脚本,在GPL协议下发布。这个项目的文档相当完备,不过,CPAINT只支持PHP和ASP。更多有关的信息请访问sourceforge.net/projects/cpaint/。
      B.2.2 Sajax
      利用Sajax,可以直接从JavaScript调用服务器端代码。Sajax支持Perl、Python、Ruby和ASP等语言(不过奇怪的是,目前并不支持Java)。安装Sajax相当简单,只涉及针对特定服务器语言的简单的库。Sajax的开发社区极其活跃。已经确认的只有IE 6和Mozilla/Firefox提供Sajax支持,不过本书作者认为它在Safari上也能很好地使用。更多有关的信息请访问www.modernmethod.com/sajax
      B.2.3 JSON/JSON-RPC
      JavaScript对象注解(JSON)是一种文本格式,与XML很相似,可以用于交换数据。JSON的设计要保证两方面,一方面便于人阅读,另一方面便于机器解析,它使用了C系列语言类似的约定。与JSON相关的还有JSON-RPC,这是一个远程过程调用(RPC)协议,类似于XML-RPC,但面向的是JSON语言。作为规约,JSON-RPC在许多语言中都有实现,包括Java、Ruby、Python和Perl。
      由于JSON-RPC是规约,你需要知道哪个特定实现适用于你的环境,还要充分了解特定的实现。取决于具体的实现,有些实现的文档相当完备,有些则根本没有。开发人员的参与程度也有很大不同。关于JSON-RPC规约的讨论已经有些少了。更多有关的信息请访问 www.crockford.com/JSON/index.html
      B.2.4 Direct Web Remoting
      利用Direct Web Remoting (DWR),你能从JavaScript直接调用Java方法,就好像它们是浏览器的本地方法一样。尽管后台严格限制为Java,但DWR仍然是最流行的框架之一。DWR的文档是最棒的,还有一些有用的例子可以帮助你入门。
      安装并不难,不过还要编辑Web应用的部署描述文件,另外要编辑DWR特定的文件。DWR配置文件指定了可以远程创建和调用的类,而且文档中警告用户:从浏览器调用服务器确实存在一些安全问题。除了包含服务器端代码的JAR文件,另外还有两个JavaScript文件包含了一些辅助函数。DWR适用于一些常见的Web框架,如Struts和Tapestry,在Apache协议下发布。如果想从Web页面调用Java方法,DWR能助你一臂之力。更多有关的信息请访问getahead.ltd.uk/dwr/index。
      B.2.5 SWATO
      Shift Web Applications TO (SWATO)也是一个基于Java的Ajax框架解决方案。SWATO在所有Servlet 2.3或更高版本的容器中都能工作,类似于DWR,它也需要对配置文件做一些更新。有意思的是,SWATO充分利用了JSON来完成客户和服务器之间数据的编组,与本附录中讨论的其他一些框架相似,它也允许从浏览器调用服务器端Java。为了帮助开发人员,SWATO包括许多可复用的组件,如自动完成文本框等。
      与使用其他框架相比,使用SWATO要相对复杂一些,要访问的类需要实现一个SWATO接口。不过,其文档相当完备,对于入门来讲绰绰有余。SWATO设计为使用Spring来打包服务,但是不一定非得如此。更多有关的信息请访问https://swato.dev.java.net/doc/html/
      B.2.6 Java BluePrints
      Sun的BluePrints小组一直忙于将Ajax纳入他们的解决方案目录(Solutions Catalog)中。Solutions Catalog包括一些很好的文档,描述了如何使用基本Ajax,如何实现自动完成,如何创建一个进度条以及如何验证表单。它还包括JavaServer Faces组件。为BluePrints Solutions Catalog开发的代码可以从www.java.net网站得到。
      B.2.7 Ajax.Net
      Ajax.Net之于Microsoft .NET就相当于SAJAX、DWR和SWATO之于Java。利用Ajax.Net,你能从JavaScript客户调用.NET方法。Ajax.Net包括一个DLL,可以与VB .NET或C#一同使用。Ajax.Net的文档很好地展示了针对各种场景的解决方案,而且能得到相关的源代码。不过,Ajax.Net的许可协议很不明确。更多有关的信息请访问ajax.net。
      B.2.8 Microsoft的Atlas项目
      Microsoft在Ajax领域涉足的时间已经不短了,毕竟,XMLHttpRequest对象是Microsoft发明的,而且从1998年开始就已经用在Web版本的Outlook中。Microsoft把重点放在提供一个更加健壮的开发环境上,从而让开发人员的工作更轻松。Microsoft的着眼点还不只这些,还力图提供客户端脚本框架、ASP.NET控件和Web服务集成。Microsoft还发布了Atlas项目,作为其ASP.NET 2.0预览版的一部分。有Microsoft的介入,开发人员的工具包可能会比今天充实得多。更多有关的信息请访问beta.asp.net/default.aspx?tabindex=7&t-
      abid=47。
      B.2.9 Ruby on Rails
      Rails是一个令人兴奋的新Web框架,建立在Ruby语言基础上。如今,Rails已经得到了大量关注(在Google上查一下Rails,可以找到更多信息),这是因为使用Rails能够快速开发基于Web的应用。开发Basecamp时,37signals小组提出名为Rails的框架。Basecamp正是Ajax应用的主要示例,所以看到Rails对Ajax提供如此充分的支持,我们不应感到奇怪。Rails有许多内置的JavaScript库,其中包装了很多常用的特性,它还包含一个模块,其中包装了Ruby的JavaScript调用。如果你在使用Rails,就会发现Ajax非常简单。更多有关的信息请访问www.rubyonrails.org

    AJAX框架比较2009-12-09 17:58近两年来,AJAX之风愈演愈烈,其相关技术以及背后所秉承的理念正逐渐被越来越多的开发人员所认可。随之而来的AJAX开源框架也层出不穷。更 令人欣幸的是,在众多框架之中,我们华语开发者为Web应用开发人员贡献了两个出类拔萃之作:新技术的“领头羊”ZK,厚积薄发的“水牛 ”Buffalo。本期的工具栏目,邀请到ZK创始人——叶明宪和Buffalo创始人——陈金洲,对当前一些流行的AJAX框架做出点评,并且与读者分 享AJAX框架的发展现状及趋势。

     

    --------------------------------------------------------------------------------
    叶明宪观点

        AJAX 已流行二、三年了,现今所谓 Web 2.0 网站或多或少有 AJAX 影子。然而新的 AJAX 框架仍不断诞生,现有的框架也在持续推出新的版本。为什么?

        首先,AJAX应用范围持续扩大,从 del.icio.us 简易的编辑功能,到 999fang.com 整合 AJAX 和数据库搜寻,到 Google Spreadsheets 近似 Windows 应用程序。再者,AJAX已缓步进入企业应用。除了User Friendly,安全、开发及维护成本、与现有应用服务器、服务和开发环境的整合度等更是企业应用的重点。这些都已跳脱早期框架的范畴。

        目前 AJAX 在企业应用正处于 Geoffrey Moore 所谓的Chasm中,预期接下二年会慢慢大量投入使用。而在消费型网站的应用正走过高成长期,聚光灯的焦点将逐渐移到如Google Spreadsheets的应用。

        在这种背景之下,AJAX框架如雨后春笋,层出不穷。很多开发者朋可能都有自己的偏好,但是仍有一些开发人员面对这么多框架,可能会感觉无从下手。我们可以从多个面向来看这些框架。

        从功能面来看,可分为以下几类:
        1、浏览器端的底层链接库,如 Prototype, script.aculo.us, jQuery 等。
        2、浏览器端UI组件库,如 Ext-JS, Dojo 等。
        3、整合式框架,如 ZK, Backbase, IceFaces 等。
        其中,底层链接库应用最广、轻巧易整合力但功能有限。整合式框架则包括浏览器端及服务器端的完整框架。DWR和GWT则较难分类。DWR基本是JavaScript-to-Java 的 RPC框架,而GWT则是在RPC 加上浏览器端开发工具。

        从应用面来看,可粗分网站应用和企业应用。底层链接库多用于网站应用或当其它框架的基础。UI组件库则二者都有,而整合式框架侧重在企业应用。

        从系统架构来看,可分Client-centric和Server-centric。所谓 Client-centric 是指你写的程序代码(UI部份)主要执行的地方在客户端 (即浏览器),而 Server-centric 则在服务器端。大部份框架多是 Client-centric,如Dojo, Prototype,GWT,Ext-JS,Backbase等。而Server-centric则以ZK为代表。

        一般读者不太注意架构的差别,但它是决定开发及维护成本的关键。

        读到这里,可能仍有人心存疑问:到底哪种框架适合我的应用?事实上,没有单一个框架适合所有应用。对于强调简易直觉接口的Web 2.0网站而言,通常只有几个需要 AJAX化的功能,可藉由浏览器端的底层链接库的帮助,并投入相当资源,以使这些AJAX 化出众夺目才是最重要的。对于现有Web应用程序,如架构于Struts、JSP或JSF等,则可依其对JavaScript熟悉度而选择浏览器端UI组 件库或整合式框架。使用浏览器端 UI组件库,需要较多定制化JavaScript程序代码才能整合到原应用程序中。而使用整合式框架,则要视其是否支持现已使用的架构。例如,若使 用.NET平台,则只能使用 Microsoft的框架。若使用JSP则可使用ZK和Backbase。若使用JSF则可使用ZK,Backbase和IceFaces。

        利用ZK框架设计的Web应用程序具备丰富的胖客户端特性和简单的设计模型。ZK包括一个基于AJAX可自动进行交互式操作的事件驱动引擎和 一套兼容 XUL (XML User-interface Language——基于XML的用户接口语言)的组件。利用直观的事件驱动模型,你可以用具有XUL特性的组件来表示你的应用程序并通过由用户触发的监 听事件来操作这些组件。目前,ZK 3.0 版本已发布。提供了基于XUL和XHTML现成丰富的组件:网格、标签页装饰器、树形目录、组合框、图表、滚动条、分割条、音频等等。此外,还提供了宏组 件,能够开发新组件像搭积木一样简单和方便。编写脚本(Script)功能可以用EL expressions和你偏好的脚本语言,包含但不仅限于Java、JavaScript、Ruby、Groovy和MVEL的语言。值得一提的是,最 新版本还集成了Google Maps, FCKeditor, Dojo以及 Timeline,并且提供对Google最新发布的手机操作平台Android的开发支持。

        有人预测,Silverlight、 Flex等RIA框架的出现,将对AJAX框架构成严重威胁,我的看法刚好相反。Silverlight、Flex等是大型软件公司企图以私有 protocol 垄断新兴市场的老方法。然而因特网的巨大并不是任何人所能控制的。感谢Tim Berners-Lee等人无私的贡献,因特网已成为最公平最开放的平台了。事实上 Flex 不久前才刚转为 Open Source,这对定价超过一万美元的软件,算是个重大的挫败。

     


    --------------------------------------------------------------------------------
    陈金洲观点

        毫无疑问,AJAX被越来越多的接受。这不仅仅体现在技术的应用上,更体现在行业范围内的需求提升上。Web应用这种类型不仅仅被用在企业业 务系统,更多被用在Web2.0应用中。这些应用意味着以前只能被几十人几百人使用的系统,突然之间会有几十万几百万的用户。用户有了更多选择,能够吸引 用户驻留的,除了华丽的界面,那么就是流畅的操作界面和快速的响应。作为实现不打断用户操作的关键技术AJAX, 从吸引用户这一点上,具有不可替代的使命。

        意味着华丽、AJAX的Web2.0应用同样也冲击着企业应用的需求。虽然没有统计数据,但可以看到越来越多的企业应用要求更直观的界面,更 流畅的操作,更少的延迟。例如,在前两年,级联下拉框的实现,大多数的框架(或者应用)的实现是选中一个时刷新整个页面,然后根据选中的那个更新下一个下 拉框的待选值列表。这个实现在今天看起来几乎是完全不可接受的,无论对客户还是对开发者。

        开发者这边,去年还有关于AJAX几宗罪的讨论,然而现在看来,更多的讨论沉浸到了某一个具体技术中。在认清AJAX技术本质之后,更多的开 发者或欣然接受,或用户要求,开始了AJAX相关技术的学习和使用。从我周围看来,曾经认为JavaScript是不太入流的语言的程序员,现在已然逐渐 发现,JavaScript很有趣,很强大;用 JavaScript实现很酷的网页效果,很有成就感,等等。

        另外, AJAX这个词本身,早已远远超越了它所代表的本来含义。AJAX原本是异步的JavaScript和XML。然而一看到一个绚丽的网页(Web应用), 几乎大多数人,具备Web相关知识的,第一个问题往往是:这用的AJAX吧?──AJAX现在几乎成为圆角、拖拽、绚丽、无刷新的代名词。当一个名称上升 为一种概念、一种直觉的时候,我们应该知道,相关的技术应用到了什么程度。

        现在几乎已经没有人手工与XMLHttp对象打交道,绝大多数的开发者都使用Buffalo, DWR, Prototype等辅助库、框架进行开发。

    AJAX框架的选择

        由于现在很少有人只用一种AJAX技术,我将AJAX框架的范围扩大一些,分为偏重展现、偏重传输、工具型三个部分。由于我自己的Web工作 语言主要在 Java, Ruby以及Python之间,以下的评价不包含PHP, .NET下的一些工具。另外,对自己开发的和它的主要竞争者DWR有主要的比较,其他的仅作泛泛评述,估妄言之。

        偏重展现:YUI, Qooxdoo, Dojo
        ·YUI :目前设计比较完整,美观,全面的界面工具库。
        ·Qooxdoo: 开源的另一种选择。
        ·Dojo: 比较完善的库结构,丰富的界面控件。

        偏重传输:Buffalo, DWR
        Buffalo特性:
        1、基于prototype。如果你的AJAX应用也是基于prototype,那么可以减少重复加载prototype的带宽,并且获得相当一致的编程概念。
        2、Bind: 提供了对结果数据的处理,直接将数据绑定到页面对象并展示,这是一个动人的特性。在2.0中,Bind能力更加强大,能够将值直接绑定到表单元素、表格、 DIV/Span、甚至整个表单上。关键是这种绑定是无侵入并且与buffalo整体结构完全整合,对外表现只有一个简单的 {{buffalo.bindReply}}或者{{Buffalo.Bind.bind}}即可。
        3、序列化:Buffalo支持任意对象,任意深度,任意数据结构的Java到JavaScript以及JavaScript到Java的双向序列化,并且支持引用。
        4、生命周期对象访问:1.2.4之前需要继承一个BuffaloService,从1.2.4开始就不需要继承了,引入了线程安全的 BuffaloContext对象,只需要通过BuffaloContext.getContext()即可获得一个线程安全的引用,并且对 Request的各种属性进行操作。
        5、对Collection/Array的模糊处理:Buffalo中提供了对Collection/Array对象的模糊识别能力。例如:服务器端有一个方法需要List参数,客户端传递过去一个javascript数组就可以了,不需要费心的组装对象。
        6、客户端组装对象:Buffalo支持在客户端组装对象,甚至可以直接将整个表单序列化为一个对象作为参数传给远程客户端。
        7、对重载方法的处理能力:由于Java与JavaScript之间类型的不匹配,DWR的代码生成无法对重载方法进行处理。例 如,sum(double,double), sum(int, int) DWR很可能不知道你要调用哪一个。从2.0开始Buffalo支持了对重载的处理。

        DWR特性:
        1、支持Batch,可以将多个Service函数调用放在一个XMLHttpRequest请求中完成。
        2、Converter:可以转换任意类型的Java对象到JavaScript,并允许直接使用。例如:Customer类包含一个 address变量,当AjaxCall返回Customer对象的时候,可以直接在Javascript中使用customer.address来获得 Address的信息。
        3、允许Expose部分函数和属性。(Buffalo无限制,可以访问Service中的任意函数。)
        4、DWR2.0中提出了Reverse Ajax,提供在Java代码中来处理页面上元素的功能。

       工具型:Prototype, JQuery, Dojo
        ·Prototype:得益于Ruby语言的设计,它使得你能够以几乎类似于编写Ruby的方式编写JavaScript。由于绑定在 Ruby On Rails的发行包中,它成为近两年最流行的AJAX工具。早期它小巧灵活,现在由于加入太多的特性,日渐臃肿。目前1.6版本大小已经超过120K。
        ·JQuery:Prototype的主要竞争者。简单是它最大的优点。大多数常见的复杂操作、效果,JQuery的代码量能够比Prototype少50%以上。
        ·Dojo:采用类似于Java包的管理方式,实现按需加载JS。提供了全面的AJAX、DOM操作支持。然而需要在HTML TAG中嵌入额外的属性,使得网页不能遵守W3C标准,不少开发者对此耿耿于怀。

    来自RIA框架的冲击?

        我并不赞同这种说法,恰恰相反,我认为像Silverlight,Flex等这些RIA框架要考虑来自Web应用的冲击。Web领域几乎已经 不存在技术壁垒,能做哪些,那些不适合,负载均衡等等已经有充分的资源可以参考。各种模式都可以灵活的应用到其中,各种测试工具(如Selenium网页 测试工具)、开发工具支持得非常出色。而RIA框架要考虑的问题远远要比现在的Web应用多得多。除了RIA所承诺的更容易的实现华丽的效果──在多种 JS库的支持下这些效果在Web下并非难事──他们有更多的问题需要考虑:资源的获取和释放,测试的支持,本地存储的问题,事件机制,状态的同步,客户 机、服务器数据交互机制(序列化反序列化)等等。RIA想如同现在的Web应用般大规模,远不到时候。大多数基于RIA应用的考虑是让应用能够离线运行, 然而与此同时浏览器也在发展,基于网页的本地存贮已经在Google Reader中可以实际使用。也许某一天浏览器就是一个完美的RIA平台,Web应用只需添加本地存贮支持就可以离线使用──类似于Flex、 Silverlight的RIA技术,与Web应用,哪个更容易被接受,还真难见分晓。
     
    经验介绍
    http://developer.51cto.com  2009-08-18 09:17  佚名  javaeye  我要评论()


    这里介绍AJAX框架的经验介绍,包括AJAX是WEB2.0的基石,现在网上流行几种开源的AJAX框架,DWR和Buffalo都是Web Remoting框架,区别在于。
    AJAX是WEB2.0的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等。

    让我们来看看选择AJAX框架的基础:
    ◆你的项目需求(即你需要哪些特性,例如是否要求做出精美的界面、特效或其它功能)
    ◆是否支持A等级的浏览器(IE, Firefox等)?
    ◆文档的质量:是否完善(包含教程,API,代码示例等)
    ◆框架的可扩展性如何?为框架写插件容易吗?
    ◆你是否喜欢它的API的风格?
    ◆能大多程度上统一你的JavaScript代码的风格?
    ◆框架大小(太大的框架导致用户下载时间的延长)
    ◆框架是否强迫你改变写HTML的方式(Dojo就是这样)?
    ◆代码执行速度:性能如何?
    ◆代码是否为模块化(Mootools为高度模块化)?代码可重用性如何?

    Tacos类包项目为Tapestry Web框架提供一些高性能的组件,同时也为在页面或自己组件中使用的AJAX框架(它当前支持的框架主要是dojo但也支持Prototype,script.aculo.us ,Rico)提供服务端Java支持。

    HTMLi - 100% XSL AJAX框架,可与Java,ASP,PHP等集成使用。可自由扩展与定制。支持多种CSS样式。HTMLi提供了一些我们经常要用到的AJAX UI组件如:datepicker、Menu Bar、Progress Bar、Splitter、Status Bar、TabPane、Tree、windows等。

    jMaki是SUN支持的一个AJAX框架。这个项目的是让Java开发人员在其基于Java的应用程序中(不管是JSP标签库还是JSF组件)都能使用AJAX技术。jMaki使用了Java与JavaScript中最优秀的部分以此来提供一些Rich AJAX style widgets。jMaki当前提供的bootstrap widget是来自Dojo,Scriptaculus,Yahoo UI Widgets,Spry,DHTML Goodies,和Google等组件库。jMaki提供为这些widget组件库提供了一个公共接口以便让你可以在同一页面中一起使用这些组件库。如果你有兴趣利用jMaki项目来快速开发Web应用程序,可以使用NetBeans 5.5的jMaki插件。这个插件可以直接把jMaki组件拖放到JSP页面中。

    BZByte EZAjax是一个开源的Ajax Web框架。BZByte Ajax框架采用服务器端的Java来创建DOM而不是通过web浏览器的JavaScript。该框架的所有更新都是GUI驱动,所以无需担心暴露应用程序的代码和远程接口。GUI更新快速并且不依赖终端用户计算机的快慢。

    AJAX框架
    ◆DWR - Web Remoting
    ◆Buffalo - Web Remoting (based on prototype)
    ◆prototype - JS OO library
    ◆openrico - JS UI component (based on prototype)
    ◆dojo - JS library and UI component
    ◆qooxdoo - JS UI component (C/S Style)
    ◆YUL - JS UI component

    Web Remoting - DWR vs Buffalo

    DWR和Buffalo都是Web Remoting框架,区别在于:

    DWR使用自定义的简单文本协议,而Buffalo使用burlap协议。因此Buffalo解析大数据量可能会比较慢,然而可以适用于多种服务器端和客户端,并且burlap协议的完整性和支持的数据类型更加丰富

    Buffalo基于prototype,如果你的AJAX应用也是基于prototype,那么可以减少重复加载prototype的带宽,并且获得相当一致的编程概念

    DWR的服务器端实现要比Buffalo完善一些

    DWR更加通用一些,用户比较广,而Buffalo是国内的Michael写的,用户使用比较少(名气较小)

    建议使用buffalo,相对更加易用,然而服务器端功能有待完善

    JavaScript Component Library - prototype vs qooxdoo vs dojo vs YUL
    prototype是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,之上还有rico/script.aculo.us实现一些JS组件功能和效果(不过目前还不是很完善),以prototype为核心,形成了一个外围的各种各样的JS扩展库,是相当有前途的JS底层框架,值得推荐,prototype以及rico/script.aculo.us的一个特出特点就是非常易学易用,门槛很低,常常是一两行JS代码就可以搞定一个相关的功能。同时它也是RoR集成的AJAX JS库。

    qooxdoo是一个功能很强的JS组件库,完全模仿Windows操作系统的GUI组件。特点是不通过常规的HTML来构造页面,完全使用JS以类似VB/Delphi风格的编程方式构造Web GUI界面,比较适合内网面向C/S风格的web应用,,而不适合面向Internet的界面多变风格的应用。qooxdoo的一个重大卖点在于qooxdoo将要提供一个FormDesigner的IDE,通过在IDE里面的可视化拖拽设计方式来自动生成C/S风格的web页面js代码。qooxdoo缺点是JS文件体积过大,超过200KB,初次下载会比较慢,而且并不适合Internet消费类网站。

    dojo是一个各个方面相当完善的JS库,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库,也被广泛应用在很多项目中,他的UI组件的特点是通过给html标签增加tag的方式进行扩展,而不是通过写JS来生成,dojo的API模仿Java类库的组织方式。dojo的优点就是库相当完善,发展时间也比较长,缺点是文件体积也比较大,200多KB,初次下载相当慢,此外,dojo的类库使用显得不是那么易用,至少给我的感觉是相当笨拙,特别是和prototype相比,更加显得难用。

    YUL是Yahoo新近发布的AJAX组件库,也是一个包含了各个方面,从工具类库到通讯,到UI组件的综合性JS库。YUL的优势在于文档非常齐全,而且有Yahoo的支持,缺点是库目前还是不是很全,功能也不强大。


    国产框架参考:龙博AJAX:http://www.longboo.com

    展开全文
  • AJAX框架汇总

    千次阅读 2005-09-02 21:04:00
    Think in AJAX(三) —— AJAX框架汇总<!--google_ad_client = "pub-8438768637354676";google_alternate_ad_url = "http://www.duduwolf.com/post/g.asp?w=468&h=60&c=F6F4E9";google_ad_width = 468;google_ad_h

    Think in AJAX(三) —— AJAX框架汇总

    <script type="text/javascript"> <!-- google_ad_client = "pub-8438768637354676"; google_alternate_ad_url = "http://www.duduwolf.com/post/g.asp?w=468&h=60&c=F6F4E9"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_channel ="9743087598"; google_ad_type = "text_image"; google_color_border = "F6F4E9"; google_color_bg = "F6F4E9"; google_color_link = "39719C"; google_color_url = "39719C"; google_color_text = "000000"; google_page_url = document.location; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-8438768637354676&dt=1125663739078&alternate_ad_url=http%3A%2F%2Fwww.duduwolf.com%2Fpost%2Fg.asp%3Fw%3D468%26h%3D60%26c%3DF6F4E9&format=468x60_as&output=html&channel=9743087598&url=http%3A%2F%2Fwww.duduwolf.com%2Fpost%2FAJAX_Frameworks.asp%231.1&color_bg=F6F4E9&color_text=000000&color_link=39719C&color_url=39719C&color_border=F6F4E9&ad_type=text_image&loc=http%3A%2F%2Fwww.duduwolf.com%2Fpost%2FAJAX_Frameworks.asp%231.1&cc=100&u_h=768&u_w=1024&u_ah=734&u_aw=1024&u_cd=32&u_tz=480&u_his=2&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="65535">

    此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也有人翻译了,不过最近发现此wiki还是在不断添加维护中,截止此文发布前,作者又添加了好几个新诞生的AJAX开发工具,所以我决定重新翻译一遍,并且时常注意原文发布状态,一有新的内容立马也翻译过来,做到同步:)

    此翻译稿很大一部分内容出自国内出现的那个先前版本,我只是对新加入的几项进行了翻译,并且对我熟悉的产品项着重介绍了一下,以后我会抽时间收集文中提到AJAX工具相关的文章,尽量将内容介绍和功能点评做到全面详细点。所以请关注和准备用AJAX做开发的朋友关注这篇文章,我会时常更新的。原文因为是由一个wiki系统维护,所以在所难免出现参差不齐,风格上也有不统一的情况,翻译时我也是参照原文原封不动的挪了过来,以后我会抽时间改良下。


    翻译正文

    基于浏览器的应用框架一般分为两种:

    • Aplication frameworks:提供了浏览器功能,但其最著名的还是在于通过窗口生成组件建立桌面GUI。
    • Infrastructural frameworks:提供基本的框架功能和轻便式浏览器端操作,让开发者去创建具体应用,主要功能包括:
      • 基于XMLHttpRequest组件的浏览器交互功能
      • XML解析和操作功能
      • 根据XMLHttpRequest的返回信息进行相应的DOM操作
      • 一些特殊情况下,和其他的浏览器端技术如Flash(或Java Applets)等集合到一起应用
    基于服务器端的应用框架通常以下面两种方式工作(尽管它们根据不同的语言进行了分类)
    • HTML/JS Generation(HTML/JS生成):通过服务器端生成HTML和JS代码在传递给浏览器端进行直接运行
    • 远程交互:JavaScript调用服务器端函数(例如调用Java函数)并返回给JavaScript的回调句柄,或者请求服务器端数据信息,例如Session信息,数据库查询等。


    目录

    1.1 Bindows
    1.2 BackBase
    1.3 DOJO
    1.4 Open Rico
    1.5 qooxdoo
    1.6 Tibet
    1.7 AJFORM
    2.1 AjaxCaller
    2.2 Flash JavaScript Integration Kit
    2.3 Google AJAXSLT
    2.4 HTMLHttpRequest
    2.5 Interactive Website Framework
    2.6 LibXMLHttpRequest
    2.7 MAJAX
    2.8 RSLite
    2.9 Sack
    2.10 Sarissa
    2.11 XHConn
    3.1 Cross-Platform Asynchronous INterface Toolkit
    3.2 SAJAX
    3.3 Javascipt Object Notation (JSON) and JSON-RPC
    3.4 Javascript Remote Scripting (JSRS)
    3.5 Bitkraft for ASP.NET
    4.1 WebORB for Java
    4.2 Echo 2
    4.3 Direct Web Remoting (DWR)
    4.4 SWATO
    4.5 AJAX JSP Tag Library
    4.6 AJAX Java Server Faces Framework
    5.1 CL-Ajax
    6.1 WebORB for .NET
    6.2 Ajax.NET
    6.3 ComfortASP.NET
    6.4 AjaxAspects
    7.1 AjaxAC
    7.2 JPSpan
    7.3 XAJAX
    8.1 Ruby On Rails

    1. Pure Javascript: Application Frameworks

    1.1 Bindows (成立于2003年)

    Backbase是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案。Bindows无需下载安装客户端支撑组件(如Java、ActiveX或Flash),仅需一个浏览器。纯OO的理念体现在Bindows任何地方,Bindows或许是笔者见过的最完整最强大的AJAX应用程序平台。
    Bindows是商业程序的,使用了来自于MB的技术(总部位于GA USA,主要开发中心在瑞典,成立于2002年)。

    Bindows框架提供的功能和特性有:
    • 基于面相对象技术的类和API
    • 一套完整的Windows桌面系统,支持各种特性窗口模式,包括菜单、表单、表格、滑动条、测量仪器窗口和其他一些Windows窗口特性支持。
    • 是开发zero-footprint(零空间占用)SOA客户端应用程序首选工具包
    • 本机的XML,SOAP和XML-RPC支持
    • 单用户到企业级开发的支持
    • 内建的完美的AJAX支持
    Bindows开发环境:
    • 支持企业级规模的项目开发
    • 跨浏览器、跨OS平台的支持
    • 不受服务器结构限制
    • 良好的与新的、现有的资源互操作性
    • 统一的开发接口

    1.2 BackBase (成立于2003年)

    BackBase是一个完整的浏览器端框架,提供了丰富的浏览器操作功能,以及对.NET和JAVA平台的集成。
    商业化产品,来自于Backbase B.V(总部在Amsterdam,成立于2003年)。

    1.3 DOJO (开发中,成立于2004年9月)

    DOJO提供完整的轻量级窗口组件和浏览器-服务器消息映射支持

    • 提供创建自定义Javascript窗口组件的框架支持
    • 预制的丰富的窗口类型库
    • B/S消息映射支持——XMLHttpRequest和其他机制
    • 支持浏览器中的URL操纵功能
    • 开源许可(Academic Free License 2.1),由JotSpotAlex Russell所领导。

    1.4 Open Rico (开发中;成立于2005年5月;基于早期的一个proprietary 框架)

    Open Rico是一个支持Ajax架构和用户交互的多用途框架。

    • 一个XMLHttpRequest response能被一个或多个的DOM对象,或者Javascript对象调用。
    • 支持拖拽操作
    • 支持基于AJAX的动画模式,如缩放和变换等
    • 基于Behaviors的操作库
    • 使用指南,由RussMirimar的Yonah提供
    • 开源。源于Sabre航空公司解决方案,由Bill Scott,Darren James及另外一些人维护。

    1.5 qooxdoo (开发中; 成立于2005年5月)

    qooxdoo,是另一个发展迅猛的应用框架,提供广泛的UI支持,正在开发基础架构等特性。
    • 基础结构特性:
      • 能轻易的捕获和操纵DOM事件
      • 支持调试
      • 支持一个时间操作的Timer类
      • Getter/Setter支持
    • UI:
      • 窗口组件库和框架
      • 界面布局管理
      • 图像缓存和透明PNG图片处理
    • 开源(LGPL).

      1.6 Tibet (开发中; 创建于2005年6月)

      Tibet提供了大量的易移植和完整的JavaScript API,通过这些可以快速生成大量的客户端代码,Tibet自称是企业级AJAX。

      • 远程脚本调用封装在XMLHttpRequest中
      • URI支持
      • 支持所有的HTTP事件,不再仅仅是GET和POST
      • 低级的协议-File://和WebDav也可以当作HTTP正常使用
      • Web Services调用支持,包括SOAP、XML-RPC等等
      • 大型的Javascript对象库
      • 多种多样的XML操作支持
      • IDE和开发工具
      • 开源协议(OSI)

      1.7 AJFORM (创建于2005年6月)

      AJFORM是一个极易上手的AJAX框架,被用来编写入门级的AJAX代码,提供有以下功能:

      • 三步安装
      • 自动支持任意HTML表单元素
      • 几乎无需编码即可实现AJAX

      2 Pure Javascript: Infrastructural Frameworks

      2.1 AjaxCaller(创建于2005年5月,目前是Alpha版)

      AjaxCaller是一个具有多线程安全访问的XMLHttpRequest组件,主要针对Ajax开发新手,目前仍处于alpha开发阶段,仅在AjaxPatterns的在线搜索范例中使用了这个程序。
      • 用明文或者XML结构的数据实现和服务器的交互(GET/POST/PUT/DELETE)
      • 支持XMLHttRequest对象的构析(销毁对象,C++支持内存对象的构析操作)
      • 支持Response的高速缓存(尚在计划中)
      • 简单的库文件代码易于新手学习使用,并且支持脚本调试
      • 开源协议

      2.2 Flash JavaScript Integration Kit

      The Flash JavaScript Integration Kit可以使Flash和Javascript脚本实现相互集成。

      • 可以实现在JavaScript中调用Flash ActionScript脚本,反之亦然。
      • 几乎支持双方主要数据类型的在不同环境中的传递调用。
      • 开源协议,有几个Flash开源爱好者维护。

      2.3 Google AJAXSLT (2005年6月发行)

      Google AJAXSLT,是一个Javascript框架,用来执行XSLT转换以及XPath查询。

      • 目前在Google Map上就使用了这个。
      • 开源协议(BSD)

      2.4 HTMLHttpRequest(Beta版;创建于2005年)

      HtmlHttpRequest最大的特点就是运用XMLHttpRequest对象和标准HTML标签IFrame来实现最大限度的跨浏览跨平台的AJAX支持,其原理是在支持XMLHttpRequest的浏览器上调用XMLHttp,如果不支持,就用IFrame来模拟实现异步交互。

      • 目前支持的浏览器:IE6/Win, IE5.5/Win, IE5/Win, IE4/Win, Mozilla/Win, Opera7/Win, Safari/Mac, IE5/Mac
      • 尚未测试的浏览器:IE4/Mac, Mozilla/Mac, Opera/Other, Konqueror/Linux。
      • 开源协议(LGPL)

      2.5 Interactive Website Framework (创建于2005年)

      Interactive Website Framework定位在浏览器中支持各种各样的AJAX基础应用的开源项目。自称是通过JavaScript、CSS、XML和HTML实现高性能的交互式WEB框架,包括一个可定制易读的XML解析器。实际上,IWF是一个AJAX的基础框架,并且还包括一些通用脚本代码。

      • 实现了线程安全的XMLHttpRequest
      • 对XML Document进行封装,以便创建更具有可读性的代码:
        var node = doc.groceries.frozen[0].pizza[0].size;
        封装后的数据读取
        var node = doc.documentElement.firstChild.firstChild.getAttribute("size");
        原始的DOM操作读取
      • 开源协议

      2.6 LibXMLHttpRequest (2003年6月发布)

      libXmlRequest是一个小型XMLHttpRequest封装包

      • 用getXML()和postXML()两个事件简化XMLHttpReuqest调用
      • 支持XMLHttpRequest对象池
      • Response缓存处理
      • 源码可以使用,但是有版权保护。

      2.7 MAJAX

      MAJAX是另一个非常小巧的HttpRequest封装包,为收发字符型信息提供简单接口,并为每步动作设置回调界面。

      2.8 RSLite (x)

      RSLite是一个XMLHttpRequest封装组件,作为Brent Ashley的JSRS(JavaScript Remote Scripting)其中的一部分功能单独发布。详情可以看JSRS的介绍

      2.9 Sack(开发中,成立于2005年5月)

      Sack也是一个很有名字的微型XMLHttpRequest封装包。调用者可以自定义回调函数或者是DOM对象。借助于回调DOM对象,可以把Response回来的数据直接以文本的方式嵌入DOM中。

      2.10 Sarissa (发布于2003年2月)

      Sarissa是一个JavaScript API,封装了在浏览器端独立调用XML的功能。

      • 可移植的XMLHttpRequest对象创造
      • 可移植的XPath查询
      • 可移植的DOM操控
      • 可移植的XSLT
      • 可移植的XML序列化
      • 开源协议(GPL2.0和LGPL2.1)

      2.11 XHConn (2005年4月发布)

      XHConn也是一个小型的XMLHttpRequest封装库。笔者也使用改良过的XHConn,其特点就是调用简单,代码也清晰易读。

      • 例子:
        new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone);
      • 开源协议许可

      3 Server-Side: Multi-Language

      3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)

      CPAINT是一个真正的同时支持PHP和ASP/VBScript脚本的AJAX和JSRS工具包。CPAINT在后台提供你需求的AJAX和JSRS代码,并自动返回到浏览器端相应的Javascript脚本代码,这种方式易于实时反馈需求的WEB应用程序。

      • 支持PHP和ASP
      • 所有功能函数都在统一的JavaScript文件中
      • 支持远程脚本和XML
      • 支持本地和远程函数调用
      • 可以创建单个或多个XMLHttp对象
      • 返回给后台的数据即可以是文本也可以是XML/DOM文档对象
      • 支持POST和GET
      • 用服务端代理的方式实现远程函数和数据的访问操作
      • 大部分浏览器中测试正常使用
      • 在GNU、GPL、LGPL开源协议保护下发行

      3.2 SAJAX (2005年3月)

      SAJAX的实现方式很独特,例如:调用一个javascript方法x_calculateBudget(),将先把响应传到服务器并调用一个Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名气不错,估计很多人都听过甚至用过,不过缺点就是它的这套映射理论感觉较繁锁,远不如一些轻量级的封装库好用,不过SAJAX最大的特点就是支持的平台丰富,几乎囊括了WEB下常用的编程语言和平台

      • 很方便从JavaScript函数映射到服务端代理操作
      • 支持多种平台(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)
      • 开源协议

      3.3 Javascipt Object Notation (JSON) and JSON-RPC

      JSON是一个"face-free" XML,而JSON-RPC是一种远程交互协议,类似于XML-RPC,对JavaScript支持较强

      3.4 JavaScript Remote Scripting(JSRS)(2000年)

      JSRS,较经典的远程脚本访问组件,支持将客户端数据通过服务器做代理进行远程的数据/操作交互。

      • 支持的浏览器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。
      • 服务器端脚本语言支持:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。
      • 开源协议。由Brent Ashley提供支持。

      3.5 Bitkraft for ASP.NET

      Bitkraft是个基于(.NET)Web框架的CLR(公共语言运行库),允许用独特的方式创建和操作分布式Web内容。用C#编写,运行在微软的.NET 1.1和Mono框架下,无缝式的客户端-服务器响应方式是它的最大特点。Bitkraft没有使用XML组织数据,而是用JSON代替。

      • 支持的浏览器: IE5+, Firefox1+, NS6
      • 服务器端要求:ASP.NET, Mono XSP, Cassini, Apache (modMono) .NET Framework 1.1+
      • 事件驱动
      • 支持同步和异步的远程代理
      • 客户端支持所有的.NET类型或自定义类对象映射到JSON中
      • 用JSON取代XML
      • 免费,开源许可协议

      4 Server-Side: Java

      4.1 WebORB for Java (2005年8月)

      WebORB for Java是一个开发AJAX和基于Flash的富客户端应用程序的开发平台。在线例子

      • WebORB包括一个富客户端开发类库。提供简单的在线式API用来绑定或者调用任何Java对象、XML Web Services和EJB
      • 支持异步或同步的事件驱动
      • 不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等。
      • 同步调用不需要回调,异步调用需要一个回调方法。
      • 客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易的转变为状态。
      • 提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示这个结果。该对象提供检索列名和行数据的方法。
      • 支持数据分页技术。客户应用程序能检索页面中的数据。
      • 支持以参数的方式返回所有服务期端数据类型,如primitives, strings, complex types, arrays, native .net collections, remote references
      • 目前有两个版本:标准版(免费),专业版(商业许可)

      4.2 Echo 2 (2005年3月)

      Echo 2允许你用纯Java语言编写AJAX程序。 Demo.

      • 自动生成HTML和Javascript代码
      • 用XML在客户端-服务端传递消息
      • 如果愿意支持自定义Javascript组件
      • 开源协议(Mozilla Public License or GNU LGPL)

      4.3 Direct Web Remoting (DWR) (2005)

      Direct Web Remoting可以在Javascript代码中直接调用Java方法的应用框架

      • 类似于SAJAX,可以把Javascript中的请求调用转递到Java方法中并将执行结果返回给Javascript
      • 可以和任何Web框架一起使用,如Struts、Tapestry等等
      • 开源(Apache),目前该产品被加入到WebWork

      4.4 SWATO (2005)

      SWATO是一套可重用的和良好集成的Java/JavaScript库,它实现了一种更容易的方式来改变你的web应用程序的交互,通过AJAX方式实现。

      • 服务端Java库可以非常容易的部署到所有Servlet2.3+兼容的容器中
      • 客户端Javascript库可以在所有支持XMLHttpRequest的浏览器中使用
      • 使用JSON技术在服务端组织POJO数据,这样你可以在任何Javascript环境中(HTML、XUL、SVG)访问这些远程数据,这种方式很容易通过硬编码或者某种成熟的Javascript库集成到当前应用中
      • 提供一个简单接口使你能在Javascript中调用远程的POJO数据
      • 使用<servlet>和<filter>灵活的在web.xml中进行配置,并且可以集成(不是必须)到你的Spring框架中
      • 提供了几个可帮助你快速开发web应用程序的组件(如自动完成的文本框,在线表单,在线列表等等)

      4.5 AJAX JSP Tag Library

      The AJAX JSP Tag Library是一组JSP标签库,用来AJAX程序开发。可以在J2EE下无需Javascript就能轻松开发AJAX模式的Web Form。标签库为比较通用的AJAX功能提供了5个标签:

      • autocomplete: 用户在文本框中输入字符,自动从指定的数据中匹配用户输入的字符,类似于Google Suggest
      • callout:可以为A标签加入气泡式的消息提示框,不过是实时的服务端取出数据
      • Select/dropdown:类似于联动菜单,比如地州市的联动下拉框
      • toggle:开关闸按钮,比如在一个hidden表单域中存储true和falsh,同时显示相应的img图像
      • update field:更新数据,也就是无刷新提交了。

      4.6 AJAX Java Server Faces Framework

      The AJAX-JSF用来把任意的JSF应用程序转变为AJAX应用程序

      • 例子:AJAX组件的 MyFaces JSF Tree(树型目录), table scroller(可滚动的表格), tabbed pane(分页栏)
      • 开源协议(Apache Software License)

      Server-Side: Lisp

      5.1 CL-Ajax

      CL-Ajax实现Javascript直接调用服务端Lisp

      • 生成可带参数的函数
      • 可以回调Javascript函数或者DOM对象
      • 可以集成到SAJAX中
      • 开源许可

      6 Server-Side: .NET

      6.1 WebORB for .NET (2005年8月)

      WebORB for .NET是一个用.NET和XML Web Services方式开发AJAX和基于Flash的富客户端应用程序(在线例子)

      • WebORB包括一个富客户端开发类库。提供简单的在线式API用来绑定或者调用任何.NET对象、XML Web Services
      • 支持异步或同步的事件驱动
      • 不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等。
      • 同步调用不需要回调,异步调用需要一个回调方法。
      • 客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易的转变为状态。
      • 提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示这个结果。该对象提供检索列名和行数据的方法。
      • 支持数据分页技术。客户应用程序能检索页面中的数据。
      • 支持以参数的方式返回所有服务期端数据类型,如primitives, strings, complex types, arrays, native .net collections, remote references
      • 目前有两个版本:标准版(免费),专业版(商业许可)

      6.2 Ajax.NET (2005年3月)

      Ajax.NET是首家支持各种方式通过Javascript访问服务端.net的免费库

      • 类似于SAJAX,能把Javascript请求发送到.NET方法,服务端回传给Javascript,甚至包括串行化自定义类。
      • 可以在Javascript中访问Session和Application数据
      • 缓存查询结果
      • 免费使用源代码
      • 无需更改源代码,允许给Ajax.NET添加和修改方法和属性
      • 所有类支持Javascript客户端返回数据,可以在JavaScript中使用DataSet:res.Tables[0].Rows
      • 使用HtmlControls组件访问和返回数据
      • 页面无需重载,用事件代理(数据访问层)
      • 因为只提供一个调用接口方法,所以服务端CPU占用非常少

      6.3 ComfortASP.NET (2005年8月)

      ComfortASP.NET可以让开发者在纯.NET下开发类似AJAX(DHTML,JavaScript,XMLHttp)特性的应用程序。

      • 快速应答
      • 减少HTML传输
      • 减少页面重载
      • 无闪烁的浏览器内容更改
      • AJAX用户体验,

      6.4 AjaxAspects (2005年8月)

      AjaxAspects是个可以用Javascript调用服务端WebService事件的引擎

      • 用标准的SOAP和WSDL进行服务端-客户端通信
      • 用简单的类型和XML对象支持带参数的返回值
      • 缓存支持
      • 动作队列
      • 免费使用,开源协议

      7 Server-Side: PHP

      7.1 AjaxAC (2005年4月)

      AjaxAC用一个单独类封装了完整的应用程序功能

      • 所有的功能集成在自包含的类中(另外附带一些Javascript库)
      • 调用PHP文件或者HTML页面非常简易,只需创建App类后把类引用传递给需要调用的Javascript对象或者HTML元素即可。
      • 捕获Javascript事件
      • 可以自定义配置数据,并且支持运行时参数更改
      • 无需再Javascript代码中夹杂凌乱的Html代码,所有事件都是被动态附加上的
      • 由于以上两个优点,所以支持良好的模版引擎
      • 容易Hook到PHP类和MySql数据已返回给自己的request
      • 能够容易的用Javascript建立窗口模式应用程序。

      7.2 JPSpan

      JPSPAN通过Javascript直接调用PHP中的函数。

      • 进行了严谨的单元测试
      • 开源许可(PHP)

      7.3 XAJAX

      XAjax通过Javascript直接调用PHP中的函数

      • 支持用Javascript调用PHP脚本
      • 开源许可协议

      8 Server-Side: Ruby

      8.1 Ruby On Rails

      Ruby On Rails是一个支持AJAX的完整Web框架,使用Ruby语言编写,严格按照MVC结构开发。

      • 当Ajax出现的时候Rails还处于其发展的早期,因此Ajax可能逐渐成为Rails框架的核心。
      • 生成浏览器中大多数/全部的Window应用组件和动画的Javascript脚本。
      • 支持服务器端调用。
      • 队列支持
      • 开源许可
    展开全文
  • AJAX框架大全 (AJAX Frameworks)

    千次阅读 2008-12-19 16:38:00
    AJAX 框架大全,原文参考:...利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成Java

    AJAX 框架大全,原文参考:http://www.open-open.com/67.htm

     DWR 

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务 端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本 DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作.

    更多DWR信息

     AJAX Tags 

    AJAX Tag是一组Jsp标签,用来简化AJAX(Asynchronous JavaScript and XML )技术在JSP页面中的使用.它提供了一些常见功能的标签如下拉级联选择,用户在文本框中输入字符自动从指定的数据中匹配用户输入的字符等。它构建在 JavaScript框架之上。

    更多AJAX Tags信息

     Struts AjaxTags 

    这 个AjaxTags是在现有的Struts HTML标签库上添加对AJAX (Asynchronous Javascript+XML)技术的支持。这样就可以为现有的基于Struts HTML标签库的应用程序添加AJAX功能而不用破坏现存的代码并且开发者不需要了解AJAX是怎样工作的。

    更多Struts AjaxTags信息

     AjaxAnywhere 

    AjaxAnywhere被设计成能够把任何一套现存的JSP组件转换成AJAX感知组件而不需要复杂的JavaScript编码.它利用标签把Web页面简单地划分成几个区域,然后使用AjaxAnywhere来刷新那些需要被更新地区域.

    更多AjaxAnywhere信息

     JSON-RPC-Java 

    JSON- RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如 Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于JavaScript与DHTML的Web应用程序中利用它来直接调用 普通Java方法与EJB方法。JSON:JavaScript Object Notation

    更多JSON-RPC-Java信息

     Tacos 

    Tacos类包项目为Tapestry Web框架提供一些高性能的组件,同时也为在页面或自己组件中使用的ajax框架(它当前支持的框架主要是 dojo但也支持 Prototypescript.aculo.usRico)提供服务端Java支持。

    更多Tacos信息

     Taconite  

    Taconite是一个基于J2EE的框架,可以利用这个框架来简化Ajax开发。Taconite包含一个客户端JavaScript包与一组能自动处理Ajax请求并生成动态内容的自定义JSP标签。

    更多Taconite 信息

     SWATO 

    SWATO (Shift Web Application TO...)是一组可复用并且结合得很好的Java/JavaScript包.它通过AJAX来轻松转变你web应用程序的交互方式.它带的一些组件包括可以自动补全的文本框架,动态级联下拉列表,动态表单等.

    更多SWATO信息

     AJAX-JSF Framework 

    这是一个利用AJAX技术并基于JSF来开发轻量级客户端的框架.它设计成可在现有的JSF组件上进行开发并最大限度的满足标准JSF Web流程.

    更多AJAX-JSF Framework信息

     Echo2 

    Echo2是Echo Web框架的下一代版本。一个可以用于开发基于Web胖客户端应用程序的框架。 这2.0版还是沿用Echo的核心思想但Echo2通过它新的AJAX表现层引擎提供生动的用户界面而且还提高了整体性能和实用性.

    更多Echo2信息

     ZK 

    ZK 是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用。ZK提供基于XUL的标记语言和事件驱动的组件,可以让你像开发桌面应用程序一样简单。支持EL表达式和脚本语言包 括:JavaScript、Ruby和Groovy等。支持Annotation及数据绑定。集成Google Maps、FCKeditor、DOJO以及Timeline。

    更多ZK信息

     JsOrb 

    JsOrb 是一组技术的集合设计用来简化下一代Web应用程序的开发。它能够让浏览器端的web页面很容易地访问服务端的商业逻辑与POJOs。JsOrb能够根据 POJOs和要作为商业逻辑接口代理的需求来生成JavaScript Classes代码。因此JavaScript类与POJOs有相同的方法与商业逻辑并且JavaScript代码看起来与Java很相似。

    更多JsOrb信息

     Buffalo 

    Buffalo 是Amowa思想实现的关键组件。Buffalo中定义了Web远程调用的传输基础,并且将远程调用对象完整的序列化到了本地,成为可以被 JavaScript编程触及的对象。Buffalo中的重要组件-BuffaloBinding,提供了将JavaScript对象绑定到HTML元素 的能力。这种绑定将是无侵入的,只需要在HTML元素中加入若干个不影响排版的属性,即可将数据与界面绑定。中文主页: http://www.amowa.net/buffalo/

    更多Buffalo信息

     Caramba 

    开 发caramba框架从头到尾只为了一个目的:用来开发胖客户端的Web应用程序。我们都知道要开发胖客户端Web程序利用AJAX技术就已经可以了,但 AJAX很难调试而且开发起来费时。我们注意到只要遵循事件驱动模型就能够得到简化,Caramba是一个100%事件驱动的框架非常易于使用。利用 Caramba就能够开发出异样,客户端响应的Web应用程序而不需要写任何JavaScript代码。你也不需要学习新的语言,只要懂得Java和 Jsp语法就足够了.Caramba主要由三部分组成 Components;CarambaServlet;Tags.在线演示Demo请访问: http://www.systemworks.be/caramba-demo/firstTestPage.caramba

    更多Caramba信息

     Java2Script Pacemaker 

    j2s(Java2Script Pacemaker)提供一个编译器Eclipse插件用于把Eclipse Java编译成JavaScript/HTML/CSS并实现了一个JavaScript版的Eclipse SWT(Standard Widget Toolkit)和其它一些公共单元类,比如java.lang.*和java.util.*。你可以利用Java2Script Pacemaker把基于SWT的RCP应用程序转换成RIA(Rich Internet Application)。兼容Mozilla/Firefox,IE,Opera浏览器。随着Web2.0和AJAX的流行,这个工具可以提高程序员开 发Web2.0应用程序的效率并且能够帮助程序员重新使用现存的大部份Java代码或SWT用户界面.

    更多Java2Script Pacemaker信息

     JSP Controls 

    JSP Controls标签库提供了类似于portlet生命周期的JSP组件。这个组件库不需要portal引擎或其它中央控制器。这些组件可用于任何基于 JSP的应用程序中。JSP Controls使用两种请求处理模式:1.传统的同步HTTP request/response 周期(Non-Ajax模式)。2.异步无刷新更新适合于支持 XMLHTTPRequest对象的浏览器(Ajax mode)。

    独立于页面段落(IPF)技术

    更多JSP Controls信息

     AMP 

    AMP是受部份RoR的启示而开发的一组依赖框架的Java API。它能够在一个正常的MVC模式中处理AJAX请求。AMP当前与Spring框架相结合以使它易于配置。

    更多AMP信息

     Rialto 

    Rialto是一个跨浏览器的Javascript界面组件包。它支持纯javascript开发和JSP/taglib开发。Rialto可集成到JSF、.Net、PHP、Python开发中。




    更多Rialto信息

     GWT 

    Google Web Toolkit (GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的 JavaScript与HTML。Eclipse开发插件 Googlipse

    更多GWT信息

     HTMLi  

    HTMLi - 100% XSL AJAX框架,可与Java,ASP,PHP等集成使用。可自由扩展与定制。支持多种CSS样式。HTMLi提供了一些我们经常要用到的AJAX UI组件如:datepicker、Menu Bar、Progress Bar、Splitter、Status Bar、TabPane、Tree、windows等。

    更多HTMLi 信息

     jMaki 

    jMaki 是SUN支持的一个AJAX框架。这个项目的是让Java开发人员在其基于Java的应用程序中(不管是JSP标签库还是JSF组件)都能使用AJAX技 术。jMaki使用了Java与JavaScript中最优秀的部分以此来提供一些Rich AJAX style widgets。jMaki当前提供的bootstrap widget是来自 Dojo, Scriptaculus, Yahoo UI Widgets, Spry, DHTML Goodies,和 Google等 组件库。jMaki提供为这些widget组件库提供了一个公共接口以便让你可以在同一页面中一起使用这些组件库。如果你有兴趣利用jMaki项目来快速 开发Web应用程序,可以使用NetBeans 5.5的jMaki插件。这个插件可以直接把jMaki组件拖放到JSP页面中。如果不熟悉该插件可以通过其网站提供一段 视频来学习。

    更多jMaki信息

     GWT Component Library 

     Ajax4jsf 

    Ajax4jsf 是一个Rich组件框架主要用于JSF应用程序的Rich用户界面开发。Ajax4jsf完全与JSF生命周期(Lifecycle)紧密结合。而其它框 架只给你访问managed bean的能力, Ajax4jsf能够在AJAX request-response期间利用Action、值变化监听器(value change listener)、调用服务端校验和类型转换器。这个框架使用一个组件库来实现,它能够为现有的JSF页面添加AJAX功能而不需要编写任何 Javascript代码或使用新的AJAX widget来代替现有的组件。Ajax4jsf能够实现整个页面范围的AJAX支持而不是传统的组件范围支持。除了核心AJAX功能之 外,Ajax4jsf还支持各种资源的管理如图片、JavaScript代码和CSS样式表等,这个资源框架让你能够很方便把这些资源与你自定义组件的代 码一起打包到Jar文件中。这个资源框架还有另外一个特性就是能够快速生成图片,创建的方式类似于使用Java graphic2D包创建图片一样。

    更多Ajax4jsf信息

     ThinkCAP JX 

    ThinkCAP 核心是一个先进的MVC框架,它能够管理运行期界面布局,GUI组件外观, 状态管理,处理数据绑定,校验,和数据持久化。驱动该框架的是它Workbench所生成的Java类和XML元数据。ThinkCAP搭建在 Struts,Hibernate,JFreeChart等25种开源框架之上,当前6.0版本与Struts非常相似。

    更多ThinkCAP JX信息

     XAP 


    XAP是一个开源基于XML的声明式Ajax框架。该框架的核心是一个可扩展的插件体系,它的目的是集成现有的Ajax项目如:Apache Kabuki,Dojo和其它Ajax开源果如:Eclipse openAjax。

    更多XAP信息

     xWire Framework 

    xWire Framework是一个成熟,面向对象,企业级的Java工具包,最适合于开发AJAX应用程序。它构建在多个著名开源项目之上 (Struts,JDOM,Xalan,Xerces,iBatis,XStream,Commons Configuration,Log4J和FOP)。

    更多xWire Framework信息

     AJAXForms 

    AJAXForms这个工具能够把不能在浏览器中使用的XHTML/XForms文档转成带Javascript的HTML文档。这个工具采用AJAX实现。

    更多AJAXForms信息

     JSF-Extensions 

    jMaki和JSF-Extensions都是Sun在JavaOne 2006上公布的AJAX项目。jsf-extensions是一组non-UI的组件,设计用于为基于JSF1.2的Web应用添加AJAX支持。
    在线演示Demo: jsf and jMaki demoJavaOne demo

    更多JSF-Extensions信息

     Json-lib 

    JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。

    更多Json-lib信息

     GWT Widget Library 

    利用GWT工具包开发的一组UI组件. src="http://www.open-open.com/gwtwidgetlist.html" width="420" height="500">

    更多GWT Widget Library信息


     ThinWire 

    ThinWire:RIA Ajax GUI Framework用此框架开发的零空间占用(zero footprint)Web应用程序外观看起来类似于桌面GUI应用程序。所有程序开发均在服务器端完成,采用基于事件驱动的GUI开发模型。支持所有主流浏览器。

    更多ThinWire信息

     JSCook 

    具有多种样式,漂亮的JSCookMenu与JSCookTree。

    更多JSCook信息

     ZeroKode 

    ZeroKode是一个针对ZK框架基于Web的UI可视化设计工具。 利用ZeroKode用户可以在Web浏览器中通过拖放(drag-and-drop)来设计Rich UI。不用编程也不需要标记语言。

    更多ZeroKode信息

     SweetDEV RIA 

    SweetDEV RIA是一整套用于开发Rich GUI的Java/J2EE Ajax widget。

    更多SweetDEV RIA信息

     BZByte EZAjax 

    BZByte EZAjax是一个开源的Ajax Web框架。BZByte Ajax框架采用服务器端的Java来创建DOM而不是通过web浏览器的JavaScript。该框架的所有更新都是GUI驱动,所以无需担心暴露应用 程序的代码和远程接口。GUI更新快速并且不依赖终端用户计算机的快慢。

    更多BZByte EZAjax信息

     Clean 

    Clean一个开源的Ajax引擎,一组简化AJAX开发的高级接口。此处Clean还集成两个开源项目 Google AJAXSLT:为Clean添加XSLT支持。 Paul Johnstone(JavaScript实现MD5与SHA1算法的开源项目):为Clean添加对安全AJAX请求的支持。

    更多Clean信息

     GWanTed 

    GWanTed 是一个让你可以在web页面(可以采用任何脚本语言开发)直接调用GWT widget,而不是用Java编码实现的开源项目。此外GWanTed还提供一组增强的功能包括错误管理,数据管理,国际化支持,面向业务逻辑开发,提 供一些用GWT开发的widget如:跨平台的Flash播放器widget,可交互的Chart widget等。

    更多GWanTed信息

     Salto Framework 

    Salto Framework是一个基于Ajax,Struts与J2EE技术的框架。它提供的一些界面组件包括:
    • Data Table
    • Treeview
    • Static Treeview
    • Tabs
    • Menu
    • Wizard
    • Tabbed Pane
    • Calendar
    • Combo box
    • Contextual Menu
    • File Upload
    • Security
    • Suggest
    • Editeur HTML (FCKeditor)
      并且可以按自己的需求只刷新界面中的某一部份。
    • 更多Salto Framework信息

     RCFaces 

    RC Faces开源Ajax JSF类库,它提供一个用于创建下一代web应用程序的组件集。RC Faces使用AJAX技术与面向对象的JavaScript API来构建动态页面。RC Faces提供的组件包括tab,sortable datagrids,菜单,文本输入框,树,日历等。它特性如下:
    1.与服务器端API相对应的客户端API(每一个属性都可以在两端读/写)。
    2.开源基于LGPL发布。
    3.不需要了解AJAX就能够使用AJAX。
    4.客户端运行期调试控制台。
    5.支持IE6.0与Firefox1.5以上版本的浏览器。
    6.提供XML-RPC框架。
    7.提供客户端入口校验框架。
    8.提供一个基于Eclipse WTP的IDE。

    更多RCFaces信息

     ICEfaces 

    ICEfaces 是一个基于Ajax的JSF开发框架。ICEfaces原本是一个商业产品,现已开源基于Mozilla Public License发布。它提供一整套完整的Java EE应用程序开发组件,能够帮助开发人员用纯Java(not JavaScript)快速开发瘦客户端胖互联网应用程序(Rich Internet Applications:RIA)。可通过其提供的一个在线 Demo体验一下ICEfaces的强大组件。

    更多ICEfaces信息

     qooxdoo 

    qooxdoo 是一个功能强大基于JavaScript GUI工包,它让你可以用JavaScript来开发类似于VB/Delphi风格的具有Ajax功能的web2.0应用程序。qooxdoo具有客户端 浏览器检测功能,具有浏览器抽象层,可以无差别的创建跨浏览器的Web应用程序,它提供方便的调试接口,具有事件管理、聚焦管理、定时器、边框和对象属性 等特征。它提供一组窗体组件并扩展了布局,它还提供跨平台的png图形透明支持功能。此外,qooxdoo提供一个原子组件,你可以在其基础上开发你自己 的组件。

    更多qooxdoo信息

     YUI 

    Yahoo! 用户界面库(Yahoo! User Interface Library, YUI)提供一些在开发Web胖客户端时常用到的一些工具和UI控件。工具:拖放(Drag and Drop)操作,连接管理器(XMLHttpRequest),页面特效,浏览器事件(例如鼠标点击和键盘按键)管理。UI控件:自动补全 (AutoComple)、日历(Calendar),容器(Container)类控件包括提示(Tooltip)、面板(Panel)、对话框 (Dialog)等、菜单(Menu)、TabView、TreeView,Logger。YUI 还包括了在创建简洁,灵活的布局并能够兼容多种浏览器时所需要的CSS资源。开发工具: Aptana IDE

    更多YUI信息

     Dojo 

    Dojo是一个非常强大面向对象,开源的JavaScript工具箱。它为开发Web胖客户端程序提供了一套完整的Widget和一些特效操作。

    开发工具: Aptana IDE

    更多Dojo信息

     Kabuki AjaxTK 

    Kabuki AjaxTK是一个从 Zimbra(开源协同办公套件)分离出来的RIA开发工具箱。风格类似于传统面向对象widget库如Eclipse的SWT,只不过是采用Javascript实现。Kabuki隐藏了其中实现细节和跨浏览器兼容问题并充分简化Ajax开发。

    更多Kabuki AjaxTK信息

     jQuery 

    jQuery是一个快速,简练的的JavaScript工具箱它能够让你以简单的方式来操作HTML元素,处理事件,实现特效并为Web页面添加Ajax交互。jQuery设计用于改变你编写JavaScript的方式。开发工具: Aptana IDE

    更多jQuery信息

     GWT Tk 

    GWT Tk是一个用于开发交互式Web应用软件可复用的组件库。它由UI组件,功能函数,调试工具,对GWT核心分发的一个修补模块组成。

    更多GWT Tk信息

     prototype-window 

    prototype-window扩展自prototype专门设计用于创建Window窗口组件的一个js类。

    更多prototype-window信息

     ExtJS 

    ExtJS(yui-ext)是一组扩展自 Yahoo!UI,具有CS风格的Web用户界面组件。主要UI包括:dialog,grid,layout,tabs等。

    更多ExtJS信息

     Gmw 

    Gmw(GWT Window Manager)项目主要目的是提供一个MDI(Multiple Document Interface)多文档界面显示管理器。该框架还允许编写和使用你自己的Window实现。

    更多Gmw信息

     AutoSuggest 

    AutoSuggest一个AJAX auto-complete text field。

    更多AutoSuggest信息

     MooTools 

    MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools跟 prototypejs相类似,语法几乎一样。但它提供的功能要比 prototypejs多,而且更强大。比如增加了动画特效、拖放操作等等。建议大家可以用它来代替 prototypejs

    更多MooTools信息

     DED|Chain 

    DED|Chain是一个JavaScript工具包构建在 Yahoo! UI之上并允许你使用类似于 jQuery的语法。DED|Chain还提供可定制的API便于利用插件对其进行扩展。

    更多DED|Chain信息

     G4jsf CDK 

    G4jsf 是Ajax4jsf下一个新的开源子项目用于把GWT(Google Widget Toolkit)集成到JSF中。G4jsf把Google widget包装到JSF组件中以便充分利用这两种技术。G4jsf CDK一个组件开发工具箱用来开发这些包装组件。

    更多G4jsf CDK信息

     TIBCO GI 

    TIBCO General Interface(GI)是TIBCO通过开源BSD授权发布的Ajax RIA库。在这个RIA库中包含了100多个Ajax组件,并且还提供相应的可视化开发工具( TIBCO Business Studio)。

    更多TIBCO GI信息

     JBossRichFaces 

    JBossRichFaces是一个构建在Ajax4jsf上的JSF Rich组件包。它提供了大量的可视化组件和内置皮肤。在线演示 Demo

    更多JBossRichFaces信息

     PGF 

    Prototype Graphic Framework(PGF)是一个基于prototype用于在浏览器中显示矢量图形( SVG/ VML/ Canvas)的框架。

    更多PGF信息

     vegUI 

    vegUI是一个javascript AJAX框架和widget组件集。用于帮助你快速、灵活地构建RIA应用程序。它采用模块化设计,并使用一个模板系统来定义vegUI element/widget。所以你完全可以自己控制widget组件的外观。

    更多vegUI信息

     moo.fx 

    moo.fx是一个超级轻量级的javascript特效库,能够与prototype.js或 mootools框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何HTML元素的CSS属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。

    更多moo.fx信息

     Control.Modal 

    Control.Modal是一个用于创建模式对话框和lightboxes的javascript类库。

    更多Control.Modal信息

     MochiKit 

    MochiKit是一个文档完善且经过详细测试的轻量级JavaScript工具包。MochiKit从Python、Objective-C等语言中借鉴了很多好的概念。开发工具: Aptana IDE

    更多MochiKit信息



     Eclipse RAP 

    Eclipse RAP项目的目的是让开发人员能够利用Eclipse开发模型来构建Rich,Ajax-enabled Web应用程序。主要运用著名的Eclipse平台扩展点插件机制和一个包含SWT/JFace API的widget工具包。

    更多Eclipse RAP信息

     script.aculo.us 

    script.aculo.us 一个跨浏览器的JavaScript用户界面库。提供包括动画(animation),拖放(drag/drop),Ajax,DOM utility,单元测试(unit testing)等API。它是Prototype JavaScript框架的一个附属。

    更多script.aculo.us信息

     Rocket-GWT 

    Rocket- GWT提供一组在开发RIA应用程序时,常用到的GWT Widget(如:Rich Menu System,水平/垂直的Slider和Splitter panel,四种风格的TabPanel,tree widget ,auto complete box widget等)和其它一些实用的功能(如:依赖注入,拖放操作等)。rocket-gwt提供的所有widget和组件都带有单元测试与示例。

    更多Rocket-GWT信息

     jqUploader  

    jqUploader是一个基于flash的文件上传widget,可用于代替html中的file input标签。它能够显示上传进度条和上传百分比。

    更多jqUploader 信息

     SWFUpload 

    SWFUpload 是一个基于flash与javascript的客户端文件上传组件。你可以在文件选择对话框中通过ctrl/shift键一次性选择多个上传文件。可以在 所有事件中加入Javascript回调函数。可以在上传开始前取得文件信息。能够利用HTML显示文件上传中的一些信息。不需要刷新页面。当不支持 Flash或javascript时,能够自动变成正常的HTML上传Form。可以在上传开始前控制文件大小。 当上传多个文件时,它将自动创建上传队列,在还没有开始上传前可从队列中移除或添加文件。

    更多SWFUpload信息

     dhtmlxVault 

    dhtmlxVault是一个基于AJAX技术开发,包含进度条的DHTML JavaScript 多文件上传组件。

    更多dhtmlxVault信息

     Ext UploadForm 

    Ext UploadForm基于ext开发的文件上传组件。可以把多个文件添加到上传队列里面,也可以从队列里面移除不需要的文件,或都清空整个队列。

    更多Ext UploadForm信息

     MyGWT 

    MyGWT是一个开源的Google Web Toolkit用户界面组件库。它将ExtJs的组件完全用GWT实现。

    更多MyGWT信息

     GChart 

    GChart是一个基于GWT开发的制图组件。它非常适合于完全需要用客户端的数据来生成Chart的应程序。

    更多GChart信息

     Prototype UI 

    Prototype UI是一个基于Prototype1.6和script.aculo.us开发常用的Web UI组件库。这些组件具有:易于使用;高度可配置;可自由更换皮肤,并提供一套清晰易懂的API。

    更多Prototype UI信息

     SmartClient 

    SmartClient Ajax platform原本是一个商业产品,现在基于LGPL许可发布成为一个开源项目。SmartClient Ajax平台包括:一个不需要安装的DHTML/AJAX客户端引擎;一套胖客户端UI组件和服务;客户端与服务器数据绑定系统。SmartClient 具有的特性:
    1.客户端Ajax:在SmartClient中所有的表示层职责和所有HTML生成都在浏览器中完成。HTML的生成或表示层职责都不需要通过服务器来处理。一旦SmartClient加载完成,在浏览器与服务器之间只有数据在传输。
    2. 多平台支持:SmartClient能够与任务服务器平台相集成通过一些跨平台标准比如:REST和WSDL web services。SmartClient还包含一个Java集成服务器用于加速与Java服务器集成,和对一些流行Java框架的支持如Java Beans/EJB,Spring,Struts与Hibernate。
    3.增加升级: SmartClient组件能够很容易的嵌到现有应用程序中。添加Grids、forms、trees、dialogs、wizards和其它SmartClient组件都不会使现有架构发生变化。
    4. 面向对象:SmartClient提供面向对象的JavaScript APIs,其所有组件都是通过XML或JavaScript创建。采用标准的面向对象模式使得你可以很容易扩展、定制和创建新的SmartClient组 件而且不需要学习底层的Ajax技术或作跨浏览器测试与调试。
    5.元数据驱动。
    6.AJAX MVC(类似于Struts for AJAX)。
    此 外通过Adobe AIR平台,Firefox extensions,Google Gears和其它技术,SmartClient还支持包括离线应用,提供SmartClient应用程序桌面安装版本(不需要改动任务代码),兼容 mobile端浏览器Safari,Opera和IE等。

    更多SmartClient信息

     jabsorb 

    jabsorb 是一个类似于DWR简单、轻量级的Ajax/Web 2.0框架。它能够让运行在web浏览器上的JavaScript代码调用Java web应用程序中的方法,就像调用浏览器支持的本地对象一样。jabsorb使用JSON-RPC协议作为它的传输机制,JSON-RPC是一种非标的协 议,因此jabsorb能够与其它标准的JSON-RPC客户端和服务器(允许采用其它语言编写)相交互。

    更多jabsorb信息

     Telosys 

    Telosys是一个用于开发Web2.0应用程序的开源框架。该框架基于C/S架构的思想,运用J2EE(Servlet,JSP,JDBC),轻量级客户端和AJAX技术。

    更多Telosys信息

     IT Mill Toolkit 

    IT Mill Toolkit是一个开源的RIA开发框架。它的特性包括:
    1.让你能够利用面向对象的方法(比如:继承和组合)来开发RIA(Rich Internet Applications)应用程序。
    2.提供大量具有Ajax功能,兼容所有主流浏览器的界面组件并且不需要学习新的Web技术比如JavaScript、DOM、标签等。
    3.采用安全的服务器端编程模型来避免你的应用程序数据受到JavaScript的安全威胁。
    4.利用Google Web Toolkit能够很方便扩展和开发属于自己的用户界面组件。
    5.利用标准的CSS样式就能够更换界面组件的皮肤。
    6.支持所有标准Java应用服务器:JBoss、WebLogic和WebSphere,和大部分浏览器IE、Firefox、Safari与Opera。

    更多IT Mill Toolkit信息

     GWT-Ext 

    GWT- Ext是一个基于GWT和ExtJs开发的Web界面组件库。组件包括:具有排序、分页和过滤功能的Grid,支持拖放操作的Tree,能够灵活配置的 ComboBoxe、Tab Panels、Menus&Toolbars、Dialogs、Forms等等。

    更多GWT-Ext信息

     jQuery UI 

    jQuery UI是一套基于jquery构建具有皮肤更换功能的UI控件和鼠标交互组件。用于帮助开发人员构建具有良好用户体验的Web应用程序。交互组件包括 drag/dropping、sorting、selecting和resizing等。基于这些核心交互组件构建的UI控件有:accordion、 date picker、dialog、slider、table sorter和tab等。

    更多jQuery UI信息

     GQuery 

    GQuery是"克隆"jQuery API的一个开源项目。GQuery不是在jQuery的基础上进行封装,而是完全采用GWT1.5新特性实现。可以利用该项目在GWT中使用jQuery的语法来查询和操作DOM元素。源代码下载地址: http://code.google.com/p/gwtquery

    更多GQuery信息

     qooxdoo Web Toolkit 

    QWT(qooxdoo Web Toolkit)类似于Google Web Toolkit。可以用Java开发 qooxdoo应用程序,QWT将客户端部分自动转换成JavaScript代码。

    更多qooxdoo Web Toolkit信息

     google-gson 

    Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。

    更多google-gson信息

     Tatami 

    Tatami是一个将Google Web Toolkit(GWT)与DOJO JavaScript框架集成在一起的开源项目。类似于GWT-EXT项目。它将DOJO控件封装成GWT控件,DOJO工具类封装成GWT帮助类。

    更多Tatami信息

     SmartGWT 

    SmartGWT是一个利用GWT封装SmartClient的开源项目。类似于 GWT-ExtSmartClient是一个企业级的ajax框架,包括非常出色的UI库、工具库和客户端服务端数据绑定等功能。

    更多SmartGWT信息



    展开全文
  • [转]AJAX框架汇总

    千次阅读 2006-04-20 17:33:00
    AJAX框架汇总form: http://www.huihoo.com/web/ajax/ajax-frameworks.html 引言(from http://www.duduwolf.com)此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也...

     

     

    AJAX框架汇总

    form: http://www.huihoo.com/web/ajax/ajax-frameworks.html

     

    引言

    ( from http://www.duduwolf.com)

    此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也有人翻译了,不过最近发现此wiki还是在不断添加维护中,截止此文发布前,作者又添加了好几个新诞生的AJAX开发工具,所以我决定重新翻译一遍,并且时常注意原文发布状态,一有新的内容立马也翻译过来,做到同步:)

    此翻译稿很大一部分内容出自国内出现的那个先前版本,我只是对新加入的几项进行了翻译,并且对我熟悉的产品项着重介绍了一下,以后我会抽时间收集文中提到AJAX工具相关的文章,尽量将内容介绍和功能点评做到全面详细点。所以请关注和准备用AJAX做开发的朋友关注这篇文章,我会时常更新的。原文因为是由一个wiki系统维护,所以在所难免出现参差不齐,风格上也有不统一的情况,翻译时我也是参照原文原封不动的挪了过来,以后我会抽时间改良下。


    翻译正文

    基于浏览器的应用框架一般分为两种:

    • Aplication frameworks:提供了浏览器功能,但其最著名的还是在于通过窗口生成组件建立桌面GUI。
    • Infrastructural frameworks:提供基本的框架功能和轻便式浏览器端操作,让开发者去创建具体应用,主要功能包括:
      • 基于XMLHttpRequest组件的浏览器交互功能
      • XML解析和操作功能
      • 根据XMLHttpRequest的返回信息进行相应的DOM操作
      • 一些特殊情况下,和其他的浏览器端技术如Flash(或Java Applets)等集合到一起应用
    基于服务器端的应用框架通常以下面两种方式工作(尽管它们根据不同的语言进行了分类)
    • HTML/JS Generation(HTML/JS生成):通过服务器端生成HTML和JS代码在传递给浏览器端进行直接运行
    • 远程交互:JavaScript调用服务器端函数(例如调用Java函数)并返回给JavaScript的回调句柄,或者请求服务器端数据信息,例如Session信息,数据库查询等。

     


    目录

    1.1 Bindows
    1.2 BackBase
    1.3 DOJO
    1.4 Open Rico
    1.5 qooxdoo
    1.6 Tibet
    1.7 AJFORM
    2.1 AjaxCaller
    2.2 Flash JavaScript Integration Kit
    2.3 Google AJAXSLT
    2.4 HTMLHttpRequest
    2.5 Interactive Website Framework
    2.6 LibXMLHttpRequest
    2.7 MAJAX
    2.8 RSLite
    2.9 Sack
    2.10 Sarissa
    2.11 XHConn
    3.1 Cross-Platform Asynchronous INterface Toolkit
    3.2 SAJAX
    3.3 Javascipt Object Notation (JSON) and JSON-RPC
    3.4 Javascript Remote Scripting (JSRS)
    3.5 Bitkraft for ASP.NET
    4.1 WebORB for Java
    4.2 Echo 2
    4.3 Direct Web Remoting (DWR)
    4.4 SWATO
    4.5 AJAX JSP Tag Library
    4.6 AJAX Java Server Faces Framework
    5.1 CL-Ajax
    6.1 WebORB for .NET
    6.2 Ajax.NET
    6.3 ComfortASP.NET
    6.4 AjaxAspects
    7.1 AjaxAC
    7.2 JPSpan
    7.3 XAJAX
    8.1 Ruby On Rails
    <script language="javascript" type="text/javascript"> if( document.all.item("hgad1") != null ) { hgad1.innerHTML = gad1.innerHTML; } </script>

    1. Pure Javascript: Application Frameworks

    1.1 Bindows (成立于2003年)

    Backbase是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案。Bindows无需下载安装客户端支撑组件(如Java、ActiveX或Flash),仅需一个浏览器。纯OO的理念体现在Bindows任何地方,Bindows或许是笔者见过的最完整最强大的AJAX应用程序平台。
    Bindows是商业程序的,使用了来自于MB的技术(总部位于GA USA,主要开发中心在瑞典,成立于2002年)。

    Bindows框架提供的功能和特性有:
    • 基于面相对象技术的类和API
    • 一套完整的Windows桌面系统,支持各种特性窗口模式,包括菜单、表单、表格、滑动条、测量仪器窗口和其他一些Windows窗口特性支持。
    • 是开发zero-footprint(零空间占用)SOA客户端应用程序首选工具包
    • 本机的XML,SOAP和XML-RPC支持
    • 单用户到企业级开发的支持
    • 内建的完美的AJAX支持
    Bindows开发环境:
    • 支持企业级规模的项目开发
    • 跨浏览器、跨OS平台的支持
    • 不受服务器结构限制
    • 良好的与新的、现有的资源互操作性
    • 统一的开发接口

     

    1.2 BackBase (成立于2003年)

    BackBase是一个完整的浏览器端框架,提供了丰富的浏览器操作功能,以及对.NET和JAVA平台的集成。
    商业化产品,来自于Backbase B.V(总部在Amsterdam,成立于2003年)。

     

    1.3 DOJO (开发中,成立于2004年9月)

    DOJO提供完整的轻量级窗口组件和浏览器-服务器消息映射支持

    • 提供创建自定义Javascript窗口组件的框架支持
    • 预制的丰富的窗口类型库
    • B/S消息映射支持——XMLHttpRequest和其他机制
    • 支持浏览器中的URL操纵功能
    • 开源许可(Academic Free License 2.1),由JotSpotAlex Russell所领导。

    1.4 Open Rico (开发中;成立于2005年5月;基于早期的一个proprietary 框架)

    Open Rico是一个支持Ajax架构和用户交互的多用途框架。

    • 一个XMLHttpRequest response能被一个或多个的DOM对象,或者Javascript对象调用。
    • 支持拖拽操作
    • 支持基于AJAX的动画模式,如缩放和变换等
    • 基于Behaviors的操作库
    • 使用指南,由RussMirimar的Yonah提供
    • 开源。源于Sabre航空公司解决方案,由Bill Scott,Darren James及另外一些人维护。

     

    1.5 qooxdoo (开发中; 成立于2005年5月)

    qooxdoo,是另一个发展迅猛的应用框架,提供广泛的UI支持,正在开发基础架构等特性。
    • 基础结构特性:
      • 能轻易的捕获和操纵DOM事件
      • 支持调试
      • 支持一个时间操作的Timer类
      • Getter/Setter支持
    • UI:
      • 窗口组件库和框架
      • 界面布局管理
      • 图像缓存和透明PNG图片处理
    • 开源(LGPL).

    1.6 Tibet (开发中; 创建于2005年6月)

    Tibet提供了大量的易移植和完整的JavaScript API,通过这些可以快速生成大量的客户端代码,Tibet自称是企业级AJAX。

    • 远程脚本调用封装在XMLHttpRequest中
    • URI支持
    • 支持所有的HTTP事件,不再仅仅是GET和POST
    • 低级的协议-File://和WebDav也可以当作HTTP正常使用
    • Web Services调用支持,包括SOAP、XML-RPC等等
    • 大型的Javascript对象库
    • 多种多样的XML操作支持
    • IDE和开发工具
    • 开源协议(OSI)

    1.7 AJFORM (创建于2005年6月)

    AJFORM是一个极易上手的AJAX框架,被用来编写入门级的AJAX代码,提供有以下功能:

    • 三步安装
    • 自动支持任意HTML表单元素
    • 几乎无需编码即可实现AJAX

    2 Pure Javascript: Infrastructural Frameworks

    2.1 AjaxCaller(创建于2005年5月,目前是Alpha版)

    AjaxCaller是一个具有多线程安全访问的XMLHttpRequest组件,主要针对Ajax开发新手,目前仍处于alpha开发阶段,仅在 AjaxPatterns的在线搜索范例中使用了这个程序。
    • 用明文或者XML结构的数据实现和服务器的交互(GET/POST/PUT/DELETE)
    • 支持XMLHttRequest对象的构析(销毁对象,C++支持内存对象的构析操作)
    • 支持Response的高速缓存(尚在计划中)
    • 简单的库文件代码易于新手学习使用,并且支持脚本调试
    • 开源协议

    2.2 Flash JavaScript Integration Kit

    The Flash JavaScript Integration Kit可以使Flash和Javascript脚本实现相互集成。

    • 可以实现在JavaScript中调用Flash ActionScript脚本,反之亦然。
    • 几乎支持双方主要数据类型的在不同环境中的传递调用。
    • 开源协议,有几个Flash开源爱好者维护。

    2.3 Google AJAXSLT (2005年6月发行)

    Google AJAXSLT,是一个Javascript框架,用来执行XSLT转换以及XPath查询。

    • 目前在Google Map上就使用了这个。
    • 开源协议(BSD)

    2.4 HTMLHttpRequest(Beta版;创建于2005年)

    HtmlHttpRequest最大的特点就是运用XMLHttpRequest对象和标准HTML标签IFrame来实现最大限度的跨浏览跨平台的AJAX支持,其原理是在支持XMLHttpRequest的浏览器上调用XMLHttp,如果不支持,就用IFrame来模拟实现异步交互。

    • 目前支持的浏览器:IE6/Win, IE5.5/Win, IE5/Win, IE4/Win, Mozilla/Win, Opera7/Win, Safari/Mac, IE5/Mac
    • 尚未测试的浏览器:IE4/Mac, Mozilla/Mac, Opera/Other, Konqueror/Linux。
    • 开源协议(LGPL)

    2.5 Interactive Website Framework (创建于2005年)

    Interactive Website Framework定位在浏览器中支持各种各样的AJAX基础应用的开源项目。自称是通过JavaScript、CSS、XML和HTML实现高性能的交互式WEB框架,包括一个可定制易读的XML解析器。实际上,IWF是一个AJAX的基础框架,并且还包括一些通用脚本代码。

    • 实现了线程安全的XMLHttpRequest
    • 对XML Document进行封装,以便创建更具有可读性的代码:
      var node = doc.groceries.frozen[0].pizza[0].size;
      封装后的数据读取
      var node = doc.documentElement.firstChild.firstChild.getAttribute("size");
      原始的DOM操作读取
    • 开源协议

    2.6 LibXMLHttpRequest (2003年6月发布)

    libXmlRequest是一个小型XMLHttpRequest封装包

    • 用getXML()和postXML()两个事件简化XMLHttpReuqest调用
    • 支持XMLHttpRequest对象池
    • Response缓存处理
    • 源码可以使用,但是有版权保护。

    2.7 MAJAX

    MAJAX是另一个非常小巧的HttpRequest封装包,为收发字符型信息提供简单接口,并为每步动作设置回调界面。

    2.8 RSLite (x)

    RSLite是一个XMLHttpRequest封装组件,作为Brent Ashley的JSRS(JavaScript Remote Scripting)其中的一部分功能单独发布。详情可以看JSRS的介绍

    2.9 Sack(开发中,成立于2005年5月)

    Sack也是一个很有名字的微型XMLHttpRequest封装包。调用者可以自定义回调函数或者是DOM对象。借助于回调DOM对象,可以把Response回来的数据直接以文本的方式嵌入DOM中。

    2.10 Sarissa (发布于2003年2月)

    Sarissa是一个JavaScript API,封装了在浏览器端独立调用XML的功能。

    • 可移植的XMLHttpRequest对象创造
    • 可移植的XPath查询
    • 可移植的DOM操控
    • 可移植的XSLT
    • 可移植的XML序列化
    • 开源协议(GPL2.0和LGPL2.1)

    2.11 XHConn (2005年4月发布)

    XHConn也是一个小型的XMLHttpRequest封装库。笔者也使用改良过的XHConn,其特点就是调用简单,代码也清晰易读。

    • 例子:
      new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone);
    • 开源协议许可

    3 Server-Side: Multi-Language

    3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)

    CPAINT是一个真正的同时支持PHP和ASP/VBScript脚本的AJAX和JSRS工具包。CPAINT在后台提供你需求的AJAX和JSRS代码,并自动返回到浏览器端相应的Javascript脚本代码,这种方式易于实时反馈需求的WEB应用程序。

    • 支持PHP和ASP
    • 所有功能函数都在统一的JavaScript文件中
    • 支持远程脚本和XML
    • 支持本地和远程函数调用
    • 可以创建单个或多个XMLHttp对象
    • 返回给后台的数据即可以是文本也可以是XML/DOM文档对象
    • 支持POST和GET
    • 用服务端代理的方式实现远程函数和数据的访问操作
    • 大部分浏览器中测试正常使用
    • 在GNU、GPL、LGPL开源协议保护下发行

    3.2 SAJAX (2005年3月)

    SAJAX的实现方式很独特,例如:调用一个javascript方法x_calculateBudget(),将先把响应传到服务器并调用一个Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名气不错,估计很多人都听过甚至用过,不过缺点就是它的这套映射理论感觉较繁锁,远不如一些轻量级的封装库好用,不过SAJAX最大的特点就是支持的平台丰富,几乎囊括了WEB下常用的编程语言和平台

    • 很方便从JavaScript函数映射到服务端代理操作
    • 支持多种平台(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)
    • 开源协议

    3.3 Javascipt Object Notation (JSON) and JSON-RPC

    JSON是一个"face-free" XML,而JSON-RPC是一种远程交互协议,类似于XML-RPC,对JavaScript支持较强

    3.4 JavaScript Remote Scripting(JSRS)(2000年)

    JSRS,较经典的远程脚本访问组件,支持将客户端数据通过服务器做代理进行远程的数据/操作交互。

    • 支持的浏览器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。
    • 服务器端脚本语言支持:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。
    • 开源协议。由Brent Ashley提供支持。

    3.5 Bitkraft for ASP.NET

    Bitkraft是个基于(.NET)Web框架的CLR(公共语言运行库),允许用独特的方式创建和操作分布式Web内容。用C#编写,运行在微软的.NET 1.1和Mono框架下,无缝式的客户端-服务器响应方式是它的最大特点。Bitkraft没有使用XML组织数据,而是用JSON代替。

    • 支持的浏览器: IE5+, Firefox1+, NS6
    • 服务器端要求:ASP.NET, Mono XSP, Cassini, Apache (modMono) .NET Framework 1.1+
    • 事件驱动
    • 支持同步和异步的远程代理
    • 客户端支持所有的.NET类型或自定义类对象映射到JSON中
    • 用JSON取代XML
    • 免费,开源许可协议

    4 Server-Side: Java

    4.1 WebORB for Java (2005年8月)

    WebORB for Java是一个开发AJAX和基于Flash的富客户端应用程序的开发平台。在线例子

    • WebORB包括一个富客户端开发类库。提供简单的在线式API用来绑定或者调用任何Java对象、XML Web Services和EJB
    • 支持异步或同步的事件驱动
    • 不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等。
    • 同步调用不需要回调,异步调用需要一个回调方法。
    • 客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易的转变为状态。
    • 提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示这个结果。该对象提供检索列名和行数据的方法。
    • 支持数据分页技术。客户应用程序能检索页面中的数据。
    • 支持以参数的方式返回所有服务期端数据类型,如primitives, strings, complex types, arrays, native .net collections, remote references
    • 目前有两个版本:标准版(免费),专业版(商业许可)

    4.2 Echo 2 (2005年3月)

    Echo 2允许你用纯Java语言编写AJAX程序。 Demo.

    • 自动生成HTML和Javascript代码
    • 用XML在客户端-服务端传递消息
    • 如果愿意支持自定义Javascript组件
    • 开源协议(Mozilla Public License or GNU LGPL)

    4.3 Direct Web Remoting (DWR) (2005)

    Direct Web Remoting可以在Javascript代码中直接调用Java方法的应用框架

    • 类似于SAJAX,可以把Javascript中的请求调用转递到Java方法中并将执行结果返回给Javascript
    • 可以和任何Web框架一起使用,如Struts、Tapestry等等
    • 开源(Apache),目前该产品被加入到WebWork

    4.4 SWATO (2005)

    SWATO是一套可重用的和良好集成的Java/JavaScript库,它实现了一种更容易的方式来改变你的web应用程序的交互,通过AJAX方式实现。

    • 服务端Java库可以非常容易的部署到所有Servlet2.3+兼容的容器中
    • 客户端Javascript库可以在所有支持XMLHttpRequest的浏览器中使用
    • 使用JSON技术在服务端组织POJO数据,这样你可以在任何Javascript环境中(HTML、XUL、SVG)访问这些远程数据,这种方式很容易通过硬编码或者某种成熟的Javascript库集成到当前应用中
    • 提供一个简单接口使你能在Javascript中调用远程的POJO数据
    • 使用<servlet>和<filter>灵活的在web.xml中进行配置,并且可以集成(不是必须)到你的Spring框架中
    • 提供了几个可帮助你快速开发web应用程序的组件(如自动完成的文本框,在线表单,在线列表等等)

    4.5 AJAX JSP Tag Library

    The AJAX JSP Tag Library是一组JSP标签库,用来AJAX程序开发。可以在J2EE下无需Javascript就能轻松开发AJAX模式的Web Form。标签库为比较通用的AJAX功能提供了5个标签:

    • autocomplete: 用户在文本框中输入字符,自动从指定的数据中匹配用户输入的字符,类似于Google Suggest
    • callout:可以为A标签加入气泡式的消息提示框,不过是实时的服务端取出数据
    • Select/dropdown:类似于联动菜单,比如地州市的联动下拉框
    • toggle:开关闸按钮,比如在一个hidden表单域中存储true和falsh,同时显示相应的img图像
    • update field:更新数据,也就是无刷新提交了。

    4.6 AJAX Java Server Faces Framework

    The AJAX-JSF用来把任意的JSF应用程序转变为AJAX应用程序

    • 例子:AJAX组件的 MyFaces JSF Tree(树型目录), table scroller(可滚动的表格), tabbed pane(分页栏)
    • 开源协议(Apache Software License)

    Server-Side: Lisp

    5.1 CL-Ajax

    CL-Ajax实现Javascript直接调用服务端Lisp

    • 生成可带参数的函数
    • 可以回调Javascript函数或者DOM对象
    • 可以集成到SAJAX中
    • 开源许可

    6 Server-Side: .NET

    6.1 WebORB for .NET (2005年8月)

    WebORB for .NET是一个用.NET和XML Web Services方式开发AJAX和基于Flash的富客户端应用程序(在线例子)

    • WebORB包括一个富客户端开发类库。提供简单的在线式API用来绑定或者调用任何.NET对象、XML Web Services
    • 支持异步或同步的事件驱动
    • 不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等。
    • 同步调用不需要回调,异步调用需要一个回调方法。
    • 客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易的转变为状态。
    • 提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示这个结果。该对象提供检索列名和行数据的方法。
    • 支持数据分页技术。客户应用程序能检索页面中的数据。
    • 支持以参数的方式返回所有服务期端数据类型,如primitives, strings, complex types, arrays, native .net collections, remote references
    • 目前有两个版本:标准版(免费),专业版(商业许可)

    6.2 Ajax.NET (2005年3月)

    Ajax.NET是首家支持各种方式通过Javascript访问服务端.net的免费库

    • 类似于SAJAX,能把Javascript请求发送到.NET方法,服务端回传给Javascript,甚至包括串行化自定义类。
    • 可以在Javascript中访问Session和Application数据
    • 缓存查询结果
    • 免费使用源代码
    • 无需更改源代码,允许给Ajax.NET添加和修改方法和属性
    • 所有类支持Javascript客户端返回数据,可以在JavaScript中使用DataSet:res.Tables[0].Rows
    • 使用HtmlControls组件访问和返回数据
    • 页面无需重载,用事件代理(数据访问层)
    • 因为只提供一个调用接口方法,所以服务端CPU占用非常少

    6.3 ComfortASP.NET (2005年8月)

    ComfortASP.NET可以让开发者在纯.NET下开发类似AJAX(DHTML,JavaScript,XMLHttp)特性的应用程序。

    • 快速应答
    • 减少HTML传输
    • 减少页面重载
    • 无闪烁的浏览器内容更改
    • AJAX用户体验,

    6.4 AjaxAspects (2005年8月)

    AjaxAspects是个可以用Javascript调用服务端WebService事件的引擎

    • 用标准的SOAP和WSDL进行服务端-客户端通信
    • 用简单的类型和XML对象支持带参数的返回值
    • 缓存支持
    • 动作队列
    • 免费使用,开源协议

    7 Server-Side: PHP

    7.1 AjaxAC (2005年4月)

    AjaxAC用一个单独类封装了完整的应用程序功能

    • 所有的功能集成在自包含的类中(另外附带一些Javascript库)
    • 调用PHP文件或者HTML页面非常简易,只需创建App类后把类引用传递给需要调用的Javascript对象或者HTML元素即可。
    • 捕获Javascript事件
    • 可以自定义配置数据,并且支持运行时参数更改
    • 无需再Javascript代码中夹杂凌乱的Html代码,所有事件都是被动态附加上的
    • 由于以上两个优点,所以支持良好的模版引擎
    • 容易Hook到PHP类和MySql数据已返回给自己的request
    • 能够容易的用Javascript建立窗口模式应用程序。

    7.2 JPSpan

    JPSPAN通过Javascript直接调用PHP中的函数。

    • 进行了严谨的单元测试
    • 开源许可(PHP)

    7.3 XAJAX

    XAjax通过Javascript直接调用PHP中的函数

    • 支持用Javascript调用PHP脚本
    • 开源许可协议

    8 Server-Side: Ruby

    8.1 Ruby On Rails

    Ruby On Rails是一个支持AJAX的完整Web框架,使用Ruby语言编写,严格按照MVC结构开发。

    • 当Ajax出现的时候Rails还处于其发展的早期,因此Ajax可能逐渐成为Rails框架的核心。
    • 生成浏览器中大多数/全部的Window应用组件和动画的Javascript脚本。
    • 支持服务器端调用。
    • 队列支持
    • 开源许可

     

    展开全文
  • 用创建XMLHttpRequest对象与jQuery框架文本为HTTP、JSON、XML的ajax实现比较 一、Ajax简介: AJAX =Asynchronous JavaScript and XML(异步的JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准...
  • ajax框架总汇

    千次阅读 2007-04-06 15:53:00
    转自http://www.duduwolf.com/post/AJAX_Frameworks.asp另外http://ajaxpatterns.org/Frameworks关于ajax的东西真是应有尽有啊引此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到...
  • AJAX框架汇总

    千次阅读 2008-03-04 17:36:00
    引此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也有人翻译了,不过最近发现此wiki还是在不断添加维护中,截止此文发布前,作者又添加了好几个新诞生的AJAX开发...
  • AJAX框架资源汇总

    2007-06-20 23:46:00
    AJAX框架资源汇总  1. Pure Javascript: Application Frameworks1.1 Bindows (成立于2003年)Backbase是 一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案...
  • ajax框架汇总

    千次阅读 2006-04-12 22:29:00
    基于浏览器的应用框架一般分为两种: Aplication frameworks:提供了浏览器功能,但其最著名的还是在于通过窗口生成组件建立桌面GUI。 Infrastructural frameworks:提供基本的框架功能和轻便式浏览器端操作,让开发者...
  • ajax框架汇总

    2006-03-28 14:27:00
    基于浏览器的应用框架一般分为两种: Aplication frameworks:提供了浏览器功能,但其最著名的还是在于通过窗口生成组件建立桌面GUI。 Infrastructural frameworks:提供基本的框架功能和轻便式浏览器端操作,让开发者...
  • AJAX框架简介

    2007-04-26 11:22:00
    是一个极易上手的AJAX框架,被用来编写入门级的AJAX代码,提供有以下功能: 三步安装 自动支持任意HTML表单元素 几乎无需编码即可实现AJAX 2 Pure Javascript: Infrastructural Frameworks ...
  • Java开源 AJAX框架

    千次阅读 2008-02-05 10:21:00
    利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,841
精华内容 7,136
关键字:

ajax框架传输文本