声明:本文译自ZK官方文档,由于本人水平所限,可能会与原文的真实意思有所出入。
一、组件的两端.
一个组件包含两个部分:视图和处理器。这就像一枚硬币的两面一样,视图是组件的视觉部分,它运行在浏览器端并且与用户交互;处理器是运行在服务器端的Java对象,与应用程序交互。
视图是一个组件的视觉部分,也就是用户所能看到的那一部分。当组件被创建完成并且附加到页面上之后,它的视图就在客户端被创建。例如当应用程序在服务器端创建一个Button的时候,这个按钮的视图就会相应地在客户端创建,因此用户就能点击它了。
处理器是运行在服务器端的Java对象,它持有应用程序所能访问的所有状态和API,从应用程序的观点来看,它所能访问的就是Java对象。换句话说,应用程序不通过Internet与用户直接交互,相反,应用程序与Java对象(组件)对话而Java对象相应地更新自己的视觉部分。类似地,如果用户在视图部分做了一些操作(比如点击一个按钮),更新Java对象以及通知应用程序是组件的责任。
应用程序不需要了解与Ajax、Java Mobile、Flash有关的任何知识,客户端与服务器端的通信细节被封装在组件的实现中。
二、页面和响应.
当一个组件被创建的时候(例如:new Button()),它不属于任何页面,进一步说,如果组件不属于任何页面,那么它在客户端也就不存在视图,这也意味着这个时候对组件的任何更新都不会对客户端产生影响;另一方面,一旦一个组件属于一个页面,那么对它的任何更新都会相应地引起视图的更改。
为了获得最好的性能,当组件被更改时ZK不会立即更新客户端的视图,相反,它积累所有的更新、并对它们进行优化,在最后的处理阶段发送一个最小的更新集合到客户端,最后的处理阶段被称为响应阶段。
从应用程序的角度看,ZK加载页面的生命周期分为四个阶段:页面初始化阶段、组件创建阶段、事件处理阶段以及响应阶段。但是从组件的角度来看,除了响应阶段之外的其它三个阶段都是相同的,所以可以简单地把这一过程分为非响应阶段和响应阶段。
在非响应阶段,ZK允许应用程序访问除了redraw方法之外的组件的任何方法,组件负责通知ZK它本身是否需要被重绘,以及它的视图的某些状态是否需要修改。
例如,如果你有一个方法会引起客户端重绘组件的视图,那么你可以调用invalidate方法:
public class MyComp extends org.zkoss.zk.ui.AbstractComponent {
public void setValue(String value) {
_value = value;
invalidate();
}
}
对invalidate方法的调用会通知ZK组件在响应阶段需要被重绘,但是ZK不会对组件进行立即重绘,相反,ZK累计这些更新并且在稍后的响应阶段一并处理它们。
在所有的事件都被处理完成之后,ZK开始启动响应阶段以便重绘那些在其他阶段被置为无效的组件,换句话说,如果组件的invalidate方法被调用过,ZK将会在响应阶段调用redraw方法重绘整个组件。在响应阶段除了redraw方法之外的组件的其它方法均不应该被调用。
未完待续……
- 大小: 106.4 KB
分享到:
相关推荐
ZK(Zookeeper)是一款分布式协调服务,常用于管理分布式应用程序的数据、配置、命名空间以及群组服务。在ZK的开发过程中,了解其核心概念、API使用、部署与配置等知识是至关重要的。以下是对ZK开发的详细说明: 1....
"ZK_Developer's_Guide_开发向导.pdf" 是ZK的开发者向导,通常会深入介绍ZK的开发流程,包括组件设计、事件处理、数据绑定、国际化和本地化、Ajax技术的应用等内容。这份PDF文档可能更适合有一定ZK基础的开发者,...
Eclipse 是一个强大的集成开发环境(IDE),广泛用于Java、Web和移动应用的开发。ZK,全称ZK Framework,是一款基于组件的轻量级Java Web开发框架,它简化了用户界面(UI)的创建,尤其在构建富客户端应用程序时。在...
欢迎使用ZK---- 一种丰富Web应用程序的最简单方式。 此开发手册买描述了ZK的概念和功能。如果想得到的各个组件(components)的属性和方法的详细描述,请参阅Developer's Guide。
1. **代码提示与补全**:ZK Studio提供了对ZK组件、事件和表达式的智能感知,极大地提高了编码效率。 2. **布局预览**:可以在设计视图中实时预览组件布局,便于调整和优化UI设计。 3. **事件编辑器**:直观地创建和...
ZK Studio 009 是一款专为 ZK 开发者设计的集成开发环境 (IDE),旨在帮助开发者更高效地创建基于 ZK 的应用程序。它包含了各种工具和功能,如代码编辑器、调试器、项目管理工具等,这些都能极大地提高开发效率。 ##...
在IT行业中,ZK(ZooKeeper)是一个广泛使用的分布式协调服务,由Apache软件基金会开发。Eclipse是一款流行的开源集成开发环境(IDE),用于编写Java、Web和企业级应用程序。当我们谈论“Eclipse集成ZK插件zk_plugin...
本指南将详细介绍如何安装配置 ZK,并通过实际操作来演示如何从零开始创建一个 ZK 应用。 #### 环境准备 在开始开发 ZK Web 应用之前,你需要确保具备以下环境: 1. **Java 开发环境**:ZK 需要 Java 环境支持,...
接下来,《ZK_Developer's_Guide_开发向导.pdf》很可能是一个更为全面的开发教程,它可能包含以下内容: 1. **快速入门**:引导开发者快速搭建开发环境,创建第一个ZK应用。 2. **进阶主题**:深入讲解高级特性,...
6. **ZK组件库**:内置的ZK组件库提供了丰富的UI组件,包括按钮、表格、图表等,这些组件都已经过优化,可以在各种浏览器和设备上良好运行。 7. **预览功能**:在设计过程中,你可以实时预览界面效果,确保UI在开发...
SDK包含驱动程序、API函数库、示例程序和开发文档等组件,使得开发者可以轻松地进行二次开发。 在开始安装前,确保你的电脑已经成功升级至Windows 10,并且中控指纹仪已连接到电脑。接下来,解压下载的"中控指纹仪...
ZK200/4000/4000b指纹仪是由ZKSoftware公司开发的一系列高性能生物识别设备。这些型号的指纹仪采用了先进的光学或电容式传感器技术,提供高精度的指纹扫描和比对功能。驱动程序通常包含以下组件: 1. 设备驱动:这...
以下将详细介绍如何安装这些组件。 首先,我们从安装MySQL开始。MySQL是世界上最受欢迎的开源SQL数据库之一,提供强大的数据存储和管理能力。安装MySQL通常包括下载安装包、配置数据库参数、创建用户和数据库等步骤...
VMware Workstation 是一款由VMware公司开发的强大桌面虚拟化软件,能够帮助用户在单一的桌面上同时运行不同的操作系统作为虚拟机,方便进行软件测试、演示和部署等工作。 #### 二、序列号获取 根据提供的信息,...
**CATIA (Computer Aided Three-dimensional Interactive Application)** 是一款由达索系统(Dassault Systèmes)开发的高端三维CAD/CAM/CAE软件解决方案。它被广泛应用于航空航天、汽车制造、机械工程等行业,用于...