Ajax框架--ZK介绍(一)
近来在java区陆陆续续出来几个关于zk提问的帖子,在欣喜ZK被越来越多人使用同时也发现有很多人的回答是没听说过ZK这个词,那么今天就让我来抛砖引玉的介绍下ZK吧。个人认为,任何新的技术架构出来,都是需要被使用,才会发现问题,才会不断进步。以往关于zk的问题都是去javaeye,或者javaworld,我希望有一天在csdn也能有很多人对此很了解,zk爱好者也能在这里找到一块互相探讨的领域。希望我写的文字能给大家有所帮助,如果反应良好,我会继续总结写第二篇,第三篇,结合我日常的实际应用。今天就先粗略介绍下吧。
ZK是一个由Java写成的Ajax Web应用程序框架,是目前第一个采用服务器为中心的RIA解决方案。开发AJAX时,由于浏览器支持JavaScript的情况各不相同,开发人员经常必须去处理这些异同或修正Bug。为了解决这个困境,ZK将这部分的工作移给服务器端来处理,透过ZK引擎和组件,处理JavaScript的语法差异和网页互动组件生成,因此开发人员可以在不需要碰触JavaScript的情况下,即可拥有稳定而丰富的互动接口。
另外,ZK也提供一组类似HTML的标示语言,但比HTML更为简洁易用,该标记语言被称为ZK User-interfacesMarkup Language(ZUML)。ZUML使开发人员更有效的完成页面设计,并且允许开发人员兼容不同的标记语言,如:XUL和XHTML,无缝的使用在同一个页面上。 另外ZUML也允许开发人员在脚本中嵌入纯Java语言和使用EL表达式来操作组件和访问数据。
ZK用黑盒方式实现了对AJAX的封装,开发者完全不用考虑AJAX的一切,ZK自动处理数据同步、事件管道、异步事件等复杂技术细节。
ZK特性
(1) 100%基于组件
所有UI对象例如窗体、按钮、标签、表格等都是ZK的组件,组件用来预先定义UI外观和交互行为,每个组件都会被指定一个ID,在应用的其他地方都可以根据ID来引用这个组件,对开发者来说组件就是简单的POJO,可以通过JAVA API来进行控制,一些组件可以容纳和限制其他组件,组件可以有一些属性来控制它的行为和外观,组件可以有一些事件,用来触发事件处理者处理用户与组件的交互,组件开发者可以来开发组件,而应用开发者只用使用组件,而不用关心它的实现细节。
(2) 100%基于事件驱动
ZK应用类似于Swing应用,通过触发事件处理过程来维护视图,ZK采用和Swing类似的事件驱动机制,是理想的MVC模式的实现。ZK的事件管理系统专门针对WEB环境进行了优化。
(3) 对服务器端为中心模式的扩展
ZK支持基于Comet的服务器端推送,ZK会自动根据应用环境来选择Comet的实现方式, 有些UI动作更适合在客户端通过JavaScript来执行,ZK定义了CSA(Client Side Actions)机制来实现直接在客户端使用JavaScript 代码。
------解决方案--------------------支持!!!