`
zuiyanwangyue
  • 浏览: 167170 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

ZK学习笔记(一)

阅读更多

1、   ZK是什么,不是什么?

ZK是事件驱动的,基于组件的框架,为web应用程序提供了富客户端接口。它包含基于Ajax的事件驱动引擎,大量的XULXHTML组件以及被称为ZUML(ZK User Interface Language)的标记语言。

Zk不提供类似RMI以及其它API那样的通道让开发者在客户端与服务器之间交互,这是因为所有的代码都运行在服务器上,ZK封装了客户端与服务器端进行通信的细节,使得这些细节对于开发者来说是透明的。

ZK不强迫开发者使用MVC或者其它的设计模式,是否使用是开发者的自由。作为一种框架,ZK的目标不是把XUL带进web应用程序,它的目标是把桌面编程的模型带进web应用程序,现在它支持XULXHTML,但不排除将来支持XAMLXQuery或别的东西的可能性。

2、   ZK当中的基本概念

ZUML页面中,一个XML元素描述了一个将要被创建的组件,例如:<window title=”Hello World”/>是一个窗口(org.zkoss.zul.Window)

嵌套在ZUML页面中的代码可以用不同的语言编写,包括但不仅限于JavaJavascriptRuby以及Groovy,最重要的是它们运行在服务器上。

<zscript>元素只在页面被载入时被计算一次,它通常被用于定义方法和初始化变量。

关于脚本语言,ZK默认的脚本语言是Java,但是我们可以通过language选择使用其它的脚本语言,此属性对值的大小写不敏感。例如:

<zscript language=”javascript”> alert(“Hello World!”); </zscript>

让脚本代码在单独的文件中:<zscript src=”……”/>

<attribute/>是一个特殊的XML元素,它以元素的形式定义了一个XML属性,在某些情况下,使用它可以使得代码具有更好的可读性。

Ifunless属性用于控制是否创建一个组件。

3、   ZK的体系结构

ZK架构的主要元素:一种基于Ajax的机制用于实现自动的交互性(包括zk加载器、zk AU引擎、zk客户端引擎),一套丰富的基于XML的组件用于丰富可用性,一种标记语言用以简化开发。

基于用户的请求,zk加载器加载zk页面,解释它,然后将响应结果作为HTML页面返回给请求的用户。Zk页面是用ZUML书写的,它就像HTML一样被用于描述什么组件将被创建以及如何展现这些组件,这些组件一旦被创建就保持可见直至Session超时。

Zk AU引擎与ZK客户端引擎是互相配合工作的,他们把在浏览器端发生的事件传递到服务器,并更新浏览器端的DOM树,此更新依据应用程序对组件的操作,这也就是事件驱动的编程模型。

4、   组件、页面、桌面

组件是一个UI对象,例如标签、按钮或者树,它定义了特定用户接口的展现和行为,通过操作这些组件,开发者就能控制如何把应用程序展现给客户端。

页面是大量组件的集合,页面被ZK加载器通过解释ZUML页面自动创建。

一个ZUML页面可能直接或间接包含其它的页面,因为这些页面是由相同的URL请求创建的,故而把它们通称为桌面,换句话说桌面是服务于同一URL请求的大量页面的集合。

注意:页面和桌面都是被隐式创建的,没有任何API可以创建或者清除它们。

关于视觉部分和Java对象:除了在服务器端有一个Java对象外,一个组件在浏览器端还会有一个视觉部分(即一个DOM元素或者一组DOM元素的集合),当然前提是组件被加入到页面中。在大多数情况下,开发人员只需操纵服务器端的对象,视觉部分的创建、更新、删除是由ZK自动完成的。

分享到:
评论

相关推荐

    ZK-AJAX学习笔记

    从给定的文件信息来看,这是一份详细的ZK-AJAX学习笔记,记录了从准备环境、下载运行ZK到深入学习各个组件的过程。ZK是一款基于Ajax的开源Web应用框架,它允许开发者使用类似桌面应用的组件来构建Web应用,而无需...

    zk开发全套资料(插件,开发手册,jar包,笔记和程序事例)

    4. **笔记**:个人笔记通常包含了开发者在学习和实践ZK过程中总结的经验和技巧,可能是解决特定问题的方法、性能优化建议或者对某些复杂概念的通俗解释。这些笔记对于初学者来说非常宝贵,能帮助他们避免常见错误,...

    python+zk笔记,xmind

    通过以上的Python与Zookeeper的学习笔记,我们可以全面了解如何在Python中利用Zookeeper进行分布式系统的管理和协调,并利用Xmind进行有效的知识整理和学习。无论是初学者还是经验丰富的开发者,都能从中受益,加深...

    zookeeper-01.xmind

    zk学习笔记

    dubbo学习笔记.pdf

    【Dubbo学习笔记】 Dubbo是一款高性能、轻量级的Java RPC框架,它旨在提供面向接口的远程方法调用、智能容错与负载均衡、服务自动注册与发现等核心功能,帮助开发者构建分布式服务架构。以下是对Dubbo基础知识、...

    HCIE-Cloud学习笔记.docx

    【HCIE-Cloud学习笔记】 华为的HCIE-Cloud认证专注于云计算领域的专业知识,涉及服务器虚拟化、云操作系统、私有云、桌面云等多个方面。在这些领域,FusionSphere是华为的核心产品,它包含了FusionCompute、...

    ClickHouse入门学习笔记

    综上所述,学习ClickHouse涉及其基本概念、数据类型、存储结构、SQL语法、副本和集群管理、查询优化等多个方面,为大数据分析提供了强大且高效的解决方案。掌握这些知识点将有助于构建和优化ClickHouse系统,实现...

    zookeeper学习笔记

    ### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...

    zk.rar_zk

    【标题】"zk.rar_zk" 提供的资源是关于"北京理工大学自动化原理"研究生入学考试的辅导笔记,这个压缩包文件很可能包含了该学科的重要学习资料。自动化原理是控制科学与工程领域的一个基础课程,主要研究如何使系统...

    pytorch学习笔记(十五)————动量与学习率衰减

    pytorch学习笔记(十五)————动量与学习率衰减目录动量学习率衰减 目录 动量 从形式上看, 动量算法引入了变量 z充当速度角色——它代表参数在参数空间移动的方向和速率。速度被设为负梯度的指数衰减平均。名称...

    《从paxos到zookeeper分布式一致性原理与实践》学习笔记

    《从paxos到zookeeper分布式一致性原理与实践》书的源码以及自己学习时写的demo主要包括zk原生api的使用zkCl

    Sqoop数据采集工具简介、安装、使用学习笔记(配合Hive和Hbase)

    本篇笔记主要围绕 Sqoop 的使用场景、安装步骤以及如何配合 Hive 和 Hbase 使用进行展开。 #### 二、数据传输流程设计 最初的设计方案是通过 Sqoop 将数据从 PostgreSQL 导入到 Kafka,再通过存储程序将 Kafka 的...

    Tingyu-Notes:一套开发级JAVA设计语言学习笔记。所有笔记已更新于微信公众号

    A Wonderful learning-Java-Blog一套开发级JAVA设计语言学习笔记。所有笔记已更新于微信公众号&lt;汀雨笔记&gt;:red_heart:资源较多已同步到gitee: 2021-1-29 |:sparkles: 特性:rainbow: 鉴权-安全:gear: 操作系统:...

    STORM学习文档

    该文档对 Storm 的学习笔记,总结了 Storm 的架构、组件、工作流程等关键知识点。 一、Storm 架构 Storm 的架构主要由四个组件组成:Nimbus、Supervisor、Worker 和 Zookeeper。 * Nimbus:负责接收用户提交的 ...

    zookeeper笔记

    ### Zookeeper概述 Zookeeper是一种分布式协调服务框架,它的核心任务是为用户的分布式应用程序提供一系列的协调...无论是从其提供的服务还是从其内部的机制来看,Zookeeper都是值得深入学习和掌握的重要技术之一。

    zookeeper安装

    Zookeeper的源码结构清晰,包含了客户端、服务器端、协议处理、数据模型等多个模块,学习源码可以帮助理解其工作原理。 在实际应用中,Zookeeper经常与Hadoop、HBase、Kafka等大数据组件配合使用,提供高可用性和...

    华为工程师总结的笔记.docx

    【Linux基础篇】 Linux是开源的操作系统,深受...总之,这份华为工程师的Linux学习笔记全面覆盖了从基础到高级的Linux知识体系,适合从零开始学习Linux的人员,也能为有一定经验的工程师提供深入学习和提升的机会。

    周阳SpringCloud课堂笔记

    # SpringCloud课堂笔记知识点解析 ## 一、微服务概述 ### 1.1 微服务定义 微服务架构作为一种新兴的设计模式,旨在通过将单个应用程序分解为多个小型、独立的服务来提升软件的可扩展性和灵活性。这些服务通常遵循...

    工程师总结Linux笔记.pdf

    本文档是工程师总结的Linux学习笔记,涵盖了Linux从基础入门到高级应用的全方位内容。 Linux快速入门部分主要介绍了Linux的基本概念、操作界面以及如何在虚拟机环境下进行Linux操作系统的安装。Linux发展及系统安装...

    华为工程师linux的笔记-第5章.pdf

    第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业级自动化实战、企业级高并发...

Global site tag (gtag.js) - Google Analytics