没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
ZK 开发手册 chanson 制作
第 1 页 共 265 页
ZK 开发手册
版权 © 2007 Potix Corporation. All rights
reserved.
Version 3.0.0
本文档内容均来自
http://zh.zkoss.org/doc/devguide
整理人:chanson
北京马甸
2008-2-21
ZK 开发手册 chanson 制作
第 2 页 共 265 页
1. 简介
1.1. 传统的 Web 应用程序
以交换文档简单高效为目标,Web 技术,超文本传输协议(HTTP)和超文本标记语言
(HTML),都来源于单页性(page-based )和无状态(stateless-communication)的模
式。在这种模式中,一个页面是自给自足(self-contained)的,并且是沟通客户端与服
务器端的最小单位。
随着网络俨然成为应用开发的默认平台,这种模式面临着巨大的挑战:对于表现当今应
用程序中复杂性的无能为力。举个例子,为了给客户报价,你或许必须打开另一个页面
来查询此客户的交易记录,再打开一个页面来显示当前的价格,还得开一个页面来存储
当前信息。用户被迫离开他正在工作的页面,并且在几个页面间来回浏览。这很容易迷
失,混淆,结果是把客户弄得不愉快,销售机会的损失和低生产力。
在这种单页性(page-based )的模式上开发一个现代的应用程序也是一个极大的挑战。
在这种模式中,运行在服务器上的应用程序必须处理来自从语法上分析请求,送出回
应 ,连接用户从一个页面到另一个页面路由的一切,并且处理用户的各种错误。 数十
种框架,例如 Struct,Tapestry 和 JSF,随即出现用来简化开发过程。由于单页性
(page-based)模式与现代模式之间的巨大差别,学习和使用这些框架并不是一个愉快
的过程,更不要提直觉感知(intuition)和简化了。
ZK 开发手册 chanson 制作
第 3 页 共 265 页
1.2. 点对点(Ad-hoc)AJAX 应用
经过数十年的演变,Web应用已经从静态HTML发展到动态HTML,applets,Flash,
最后发展到了AJAX
[
1
]
(Asynchronous JavaScript and XML ,非同步的JavaScript
和XML )。通过谷歌地图及推荐(Google Maps and Suggest)的说明,AJAX技术通
过提供与桌面应用程序同等水平的互动性和反应能力给Web应用带来了新生命。不同于
applets或Flash,AJAX基于标准的浏览器和JavaScript,并且不需要专门的插件。
AJAX 是新一代的 DHTML,就 像 DHTML,它在很大程度上依赖于 JavaScript 监听用
户活动产生的事件,然后动态的操纵浏览器中一个页面(aka. DOM)的视觉表现。此外,
它更近一步,能够使与服务器的沟通异步进行,即不需要离开或提交整个页面。它通过
引入客户与服务器间轻量级的通信(light-weight communication )打破了基于页面
的模式。妥善设计,AJAX 可以给 Web 应用带来丰富的桌面通用组件,而且这些组件
的内容可以在应用程序的控制下动态更新。
当提供给用户需要的交互性的同时,AJAX 给已经很昂贵的 Web 应用程序开发增加了
复杂性和技术先决条件。开发者不得不在浏览器中操纵 DOM,并且使用不兼容甚至是
错误的 JavaScript 与服务器通信,为了更好的交互性,开发者必须重复复制应用数据
和业务逻辑以便于浏览。这样就增加了维护成本及同步数据的挑战。
底线是在关于处理请求方面,点对点(Ad-hoc)的 AJAX 应用与传统的 Web 应用没有区
别。开发者仍然必须解决由单页性(page-based)和无状态
(stateless-communication)模式造成的隔阂。
[1]
Ajax是由Jesse James Garrett於Ajax: A New Approach to Web Applications中所提
出的。
ZK 开发手册 chanson 制作
第 4 页 共 265 页
1.3. ZK: 它是什么
ZK 是一个事件驱动(event-driven)的,基于组件(component-based)的,用以丰富
网络程序中用户界面的框架。ZK 包括一个基于 AJAX 事件驱动的引擎(engine),一套
丰富的 XUL 和 XHTML,以及一种被称为 ZUML(ZK User Interface Markup
Language,ZK 用户界面标记语言)的标记语言。
有了 ZK,您可以利用 XUL 和 XHTML 的丰富特性来呈现您的 Web 应用,操纵它们来
处理因用户活动而引发的事件,就像您使用多年的桌面应用程序那样。不同于大多数其
它框架,ZK 是一种幕后(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。
ZK 开发手册 chanson 制作
第 5 页 共 265 页
1.4. ZK: 它不是什么
ZK 并没有关注持久化(persistence)或伺服务器之间的沟通(inter-server
communication)。ZK 被设计的尽可能的简单,它只针对表示层(presentation tier)。
他并不要求和暗示任何后端技术,所有你喜欢的中间件就像以前一样工作,如 JDBC,
Hibernate, Java Mail,EJB 或 JMS。
Zk并没有为开发人员提供(tunnel),RMI或其他的 API 用来在客户端与服务器端通信,
因为所有的代码都运行在同一服务器的同一 Java 虚拟机(JVM)上。
ZK 并没有强迫开发人员使用 MVC 或其他设计模式。是否使用它们由开发人员选择。
ZK 并不是旨在把 XUL 带入 Web 应用的框架。它的目标是把桌面编程模式引入 Web
应用。目前,它只支持 XUL 和 XHTML。将来它或许会支持 XAML, Xquery 及其它。
ZK将AJAX嵌入到了现今的应用中(implementation),但它并没有止步于AJAX结束的
地方。在即将来临的ZK Mobile中,您的应用程序可以到达支持J2ME的任何设备,例
如PDA,手机和游戏平台。此外,您根本不用修改您的应用程序
[
7
]
。
[7]
根据萤幕大小有时需要做调整。
1.5. ZK: 局限
ZK 不适合在客户端运行多任务的应用程序,例如 3D 动作游戏,除非你写编写一个特殊的组件。
ZK 也不适合需要大量使用客户端计算能力的应用程序。
2. 让我们开始吧
这一章的内容描述了如何写出你的第一个 ZUML 页面,如果你没时间的话建议你至少阅读这一章。
此章使用 ZUL 来说明 ZK 的功能,但是也适合于其他 ZK 支持的语言。
2.1. Hello World
当ZK安装到你最喜爱的Web服务器
[
8
]
后, 你就可以直接编写应用程序。仅需在合适的
目录新建一个名为hello.zul的文件
[
9
]
。
<window title="Hello" border="normal">
剩余264页未读,继续阅读
资源评论
wzhenhang
- 粉丝: 2
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Golang_Puzzlers-新年主题资源
- vscode-vscode
- Algorithm Practice-冒泡排序
- gitmoji-vscode-vscode
- 常见查找算法-折半查找的实现
- StudentManageSystem-学生成绩链表处理
- Truora-Web-nodejs安装及环境配置
- DataStructure-建立学生信息链表
- discussion-vue3-master-通讯录排序
- PanUmlTools-类图
- datastructure-数据结构
- 计算机组成原理-计算机组成原理
- 24.7.8_sort-希尔排序
- renren-ui-nodejs安装及环境配置
- 大数据技术毕业设计源代码全套技术资料.zip
- 智慧农场小程序源代码全套技术资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功