`
zuiyanwangyue
  • 浏览: 164722 次
  • 性别: 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学习笔记

    zookeeper-01.xmind

    zk学习笔记

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

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

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

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

    华为工程师总结linux笔记.pdf

    初级介绍基础命令等操作;中级包括:HTTP 协议 详解、...Puppet 自动化运维实战、Ansible 自动化运维实战、Jenkins 企业级自动化实战、企业 级高并发网站集群、Docker、K8S、Hadoop、Ceph、CI/CD、MQ、ZK、ETCD 等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    notes-everything:这是项目的一些知识注释

    这是一些学习笔记可能是任何知识,这里我把笔记做了归类 ,全文使用 markdowwn 语法编辑,使用软件 vs code。 Nodejs Git VS Code Markdown gradle zabbix tomcat eclipse idea redis RabbitMQ emq json-server uml ...

Global site tag (gtag.js) - Google Analytics