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

来源:互联网 发布:电子数据取证规范 编辑:程序博客网 时间:2024/05/16 04:06

======================================================
注:本文源代码点此下载
======================================================

thinking in ajax(三) —— ajax框架汇总

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

aplication frameworks:提供了浏览器功能,但其最著名的还是在于通过窗口生成组件建立桌面gui。

infrastructural frameworks:提供基本的框架功能和轻便式浏览器端操作,让开发者去创建具体应用,主要功能包括:

基于xmlhttprequest组件的浏览器交互功能

xml解析和操作功能

根据xmlhttprequest的返回信息进行相应的dom操作

一些特殊情况下,和其他的浏览器端技术如flash(或java applets)等集合到一起应用

基于服务器端的应用框架通常以下面两种方式工作(尽管它们根据不同的语言进行了分类)

html/js generation(html/js生成):通过服务器端生成html和js代码在传递给浏览器端进行直接运行

远程交互:javascript调用服务器端函数(例如调用java函数)并返回给javascript的回调句柄,或者请求服务器端数据信息,例如session信息,数据库查询等。

 

目录

1 pure javascript: application frameworks

1.1 bindows

1.2 backbase

1.3 dojo

1.4 open rico

1.5 qooxdoo

1.6 tibet

1.7 ajform

2 pure javascript: infrastructural frameworks

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 server-side: multi-language

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 server-side: java

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 server-side: lisp

5.1 cl-ajax

6 server-side: .net

6.1 weborb for .net

6.2 ajax.net

6.3 comfortasp.net

6.4 ajaxaspects

7 server-side: php

7.1 ajaxac

7.2 jpspan

7.3 xajax

8 server-side: ruby

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支持较强

支持多服务端平台: java, python, ruby, perl.

针对不同的平台有不同的包和许可协议, 如json-rpc-java.

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数据

使用和灵活的在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脚本。

支持服务器端调用。

队列支持

开源许可


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击