ZK: 它是什么

ZK是一个事件驱动(event-driven)的,基于组件(component-based)的,用以丰富网络程序中用户界面的框架。ZK包括一个基于AJAX事件驱动的引擎(engine),一套丰富的XUL和XHTML,以及一种被称为ZUML(ZK User Interface Markup Language,ZK用户界面标记语言)的标记语言。

有了ZK,您可以利用XUL和XHTML的丰富特性来呈现您的Web应用,操纵它们来处理因用户活动而引发的事件,就像在桌面应用程序中那样。不同于大多数其它框架,就ZK而言,AJAX是一种幕后(behind-the-scene)技术,组件内容的同步和流水线事件(pipelining of events)都由ZK引擎自动完成。

您的用户获得了如同桌面程序的互动性和反应能力,而您的开发仍然像开发桌面应用程序那样简单。

除了简单的模型和丰富的组件,ZK也支持一种文本标记语言,称为ZUML。ZUML,如同HTML,可以让开发人员设计界面而无需编程。通过XML的命名空间,ZUML无缝的集成了一套不同的标签[2]到同一页面。目前,ZUML支持两套标签,即XUL和HTML。

为了方便快速模型开发(prototyping)和定制,ZK允许开发人员嵌入EL表达式,以及您喜欢的脚本语言,包括但不限于 Java[3], JavaScript[4], Ruby[5] and Groovy[6]. 开发人员可以选择不嵌入任何脚本语言,如果他们喜欢更严格的要求(discipline)。不同于JavaScript嵌入在HTML,ZK在服务器端执行所有的嵌入脚本。

注意一切运行在服务器端是从应用程序开发者的角度出发的。组件开发人员必须平衡互动性与简单性来决定什么任务由浏览器来完成,而什么任务由服务器来完成。



[2] 标签是XML元素。组件是在当ZUML网页被翻译时所产生出来的。

[3] 使用BeanShell(http://www.beanshell.org)的Java interpreter。

[4] 使用Rhino (http://www.mozilla.org/rhino)的JavaScript interpreter。

[5] 使用JRuby (http://jruby.codehaus.org/)的Ruby interpreter。

[6] 使用Groovy (http://groovy.codehaus.org/)的Groovy interpreter。