1 浏览器端框架被划分成两大类:
•应用程序框架:提供浏览器的功能,但是常以包括窗口小部件抽象和另外的部件而出名,其功能主要围绕桌面gui框架。
•基本结构框架:提供基本的管道和可移植的浏览器抽象,让开发者去创建内容。典型的功能:
* 针对xmlhttprequest的包装器以封装浏览器-服务器的交互。(所有的框架都提供这一功能)。
* xml操作和查询。
* 根据来自xmlhttprequest的应答执行dom操作。
* 在一些情况中,与另外的浏览器端技术如flash(和潜在的java applets)集成在一起。
而服务器端框架通常以下面两种方式工作(尽管它们在这里根据语言的不同进行了分类):
•html/js生成:服务器提供完整的html/javascript代码生成和浏览器-服务器协调,结果是只有浏览器端编码可以被定制。
•远程调用:javascript调用直接被路由到服务器端功能(例如java方法)并返回到javascript回叫处理器;或者javascript调用服务器以提取信息,例如会话细节,数据库查询等。
•纯javascript:应用程序框架
1.1 bindows(自从2003年)
网址是:http://www.bindows.net,bindows是一个软件开发包(sdk),它,通过强力联合dhtml,javascript,css和xml等技术,能生成高度交互的互联网应用程序-成为现代的桌面应用程序的强有力对手。bindows应用程序不要求下载和也不需要在用户端安装-仅要求有一个浏览器(也不需要java,flash或者activex)。bindows有可能领导面向对象开发的ajax应用程序的平台。
•它是商业化的,使用来自于mb的技术(总部位于ga usa,主要开发中心在瑞典,成立于2002年)。
bindows框架提供给你:
•基于类的面向对象的api
•一套完整的窗口系统,提供宽范围的窗口小部件支持,包括菜单、表单、格子、滑动条、量程,甚至更多
•用于开发zero-footprint soa客户端应用程序的领先的工具箱
•本机的xml,soap和xml-rpc支持
•单用户到企业级的支持
•内建的对ajax的支持
bindows开发环境:
•支持企业级规模的工程开发
•跨浏览器,跨平台支持
•服务器独立结构
•与新的和现有资源的互操作性
•一致性开发方法学
1.2 backbase(自从2003年)
网址是:http://www.backbase.com,是一个全面的浏览器端框架,支持丰富的浏览器功能以及与.net和java的集成。
•商业化,来自于backbase b.v(总部在amsterdam,成立于2003年)。
1.3 dojo(开发中;自从2004年9月)
网址是:http://dojotoolkit.org/,提供全面窗口小组件和浏览器-服务器消息支持。
•为创建定制的javascript窗口小组件提供框架支持。
•预置的窗口小组件库。
•浏览器-服务器消息支持-xmlhttprequest和另外的机制。
•支持浏览器中的url操纵功能。
•开源许可(学术自由许可2.1(http://opensource.org/licenses/afl-2.1.php)),由jotspot(http://www.jot.com/)的alex russell(http://alex.dojotoolkit.org/)所领导。
1.4 open rico(开发中;自从2005年5月;基于早期的私有框架)
网址是: http://openrico.org/demos.page,是一多用途框架,支持ajax基础结构和用户交互。
•一个xmlhttprequest应答能被路由到一个或者更多回叫操作,dom对象,或者javascript对象。
•容易鼠标拖动支持。
•ajax动画,例如缩放和变换。
•"行为"-实质上是窗口小组件库。
•使用指南(http://www.mirimar.net/mailbrowser/),由russmirimar的yonah所提供
•开源。源于sabre航空公司解决方案,由bill scott(http://looksgoodworkswell.blogspot.com),darren james及另外一些人所支持。
1.5 qooxdoo(开发中;自从2005年5月)
网址是:http://qooxdoo.sourceforge.net/,是另一个雄心勃勃的框架,提供宽范围的ui支持和正在开发中的基础结构特性。
•基础结构:
* dom和事件/焦点管理的可移植的抽象。
* 调试支持。
* 易于时间调度的timer类。
* getter/setter支持。
•ui:
* 窗口小组件框架和预置的窗口小组件库。
* 布局管理器。
* 图像缓冲和可移植的png透明性。
•开源(lgpl)。来自多方面的贡献者。
1.6 tibet(开发中;自从2005年6月)
网址是:http://www.technicalpursuit.com/,目的是提供高度可移植的和全面的javascript api,结果是,可能自动生成大量的客户端代码。自称是"企业级ajax"。
•远程脚本运行在xmlhttprequest包装之上-通过协调调用结果支持工作流管理,例如应答可以发生在只有当两个分离的调用返回时。
•uri支持。
•所有的http方法-不仅是"get"和"post"。
•低级的协议-file://和webdav以及http。
•web服务调用-soap,xml-rpc,等等。
•预置的针对google api,amazon api等等服务的支持。
•由高级javascript对象组成一个巨大的库。
•许多xml操作。
•ide和开发工具。
•开源许可(显然经过osi认证,但是细节不多)。
2 纯javascript:基础结构框架
2.1 ajaxcaller(alpha版本;自从5月2005年)
网址是:http://ajaxify.com/run/testajaxcaller/,是一基本的线程安全的xmlhttprequest包装器,主要针对ajax新手,仍处于原始的alpha开发阶段,目前仅与ajaxpatterns的在线搜索范例一起打包。
•实现对服务器的调用(get/post/put/delete),用路由到一个回叫操作的plain-text或者xml完成。
•使用过的xmlhttprequest对象的析构。
•response缓冲(计划的)。
•针对ajax新手-并非强调性能优化,该库主要用于实现易读的基础代码并将提供调试支持。
•开源许可。由michael mahemoff(http://softwareas.com)(具有john wehr和richard schwartz的一些思想)维护。
2.2 flash javascript集成包
网址是:http://www.osflash.org/doku.php?id=flashjs,允许javascript和flash内容的集成:
•使javascript能够调用actionscript功能和反过来的实现。
•所有主要的数据类型能在这两种环境之间传递。
•开源许可。由多个开源flash贡献者提供支持。
2.3 google ajaxslt(发行于2005年6月)
网址是:http://goog-ajaxslt.sourceforge.net/,是一个javascript框架,用来执行xslt转换以及xpath查询。
•建立在google地图工作基础之上。
•开源许可(bsd)。由一家创新搜索方案公司支持,自称为"google"。
2.4 htmlhttprequest(beta版;始于2005年)
htmlhttprequest(http://www.twinhelix.com/javascript/htmlhttprequest/),它使用了xmlhttprequest和iframes以改进兼容性。
•测试过并能工作在: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)。由twin helix designs(http://www.twinhelix.com/)的angus turnbull维护。
2.5 交互式网站框架(自从2005年5月)
交互式网站框架(http://sourceforge.net/projects/iwf/,是一个项目,目的是从浏览器端对ajax基础结构的多方面予以支持。自描述为"使用javascript,css,xml,和html来创造高度交互网站的框架。包括一个定制的针对高度可读的javascript的xml分析器。实质上,是建立基于ajax的网站的基础,还有另外一些通用脚本"。
•线程安全的xmlhttprequest实现。
•针对xml文档的包装器,以便你能够创建更具可读性的代码:
var node = doc.groceries.frozen[0].pizza[0].size;
代替手工的导航:
var node = doc.documentelement.firstchild.firstchild.getattribute("size");
•开源许可。由weaver(http://circaware.com|brock)维护。
2.6 libxmlhttprequest(发行于2003年6月)
libxmlrequest(http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libxmlrequest.html),是xmlhttprequest的一个瘦包装器。
•getxml()和postxml()方法。
•xmlhttprequest对象池支持。
•response缓冲。
•可用源码(明显),但是受标准版权的保护,由stephen w.coate(http://www.whitefrost.com/index.jsp)所维护。
2.7 rslite(x)
网站是: http://www.ashleyit.com/rs/main.htm,是一个针对xmlhttprequest的瘦包装器。
•一个简单的组件,作为brent ashley的更全面的远程脚本工作(参见javascript远程脚本-jsrs在多语言服务器端)的一部分发行。
2.8 sack(在开发中,自从2005年5月)
网站是: http://twilightuniverse.com/2005/05/sack-of-ajax/,是一个针对xmlhttprequest的瘦包装器。
•调用者能指定回叫函数或者回叫dom对象。借助于回叫dom,应答文本直接被推入到dom中
2.9 sarissa(发行于2月,2003年)
网站是:http://sarissa.sf.net,是一种javascript api,它封装了在浏览器端可以独立调用xml的功能。
•可移植的xmlhttprequest创建
•可移植的xpath查询
•可移植的dom操作
•可移植的xslt
•可移植的xml串行化
•开源(gpl2.0和lgpl2.1)。来自多方面贡献者。
2.10 xhconn(发行于自从4月,2005年)
网站是: http://xkr.us/code/javascript/xhconn/,是一个对xmlhttprequest的瘦包装器。
•例如
new xhconn().connect("mypage.php","post","foo=bar&baz=qux",fnwhendone);
•开源许可。由brad fults所维护。
新闻热点
疑难解答
图片精选