`

架构概况

    博客分类:
  • ZK
阅读更多

 

架构概况

ZK包括一种基于AJAX机制用来实现自动的交互性,一套丰富的基于XUL的组件用以丰富可用性,和一种的标记语言用来简化开发。

基于AJAX的机制包括三个部分,描绘如下:ZK 加载器(ZK loader),ZK AU引擎(ZK AU Engine) [17] ,和ZK客户端引擎(ZK Client Engine)。

基于用户的请求,ZK 加载器(ZK loader)加载一个ZK页面,解释它,并将结果送到HTML页面来响应URI请求。ZK页面是用一种被称为ZUML的标记语言写成的。ZUML,就像HTML,被用来描述什么组件被创建,以及如何把它们呈现出来。这些组件一旦被创建,就会一直处于可用状态知道会话超时。

然后ZK AU[18] 引擎(ZK AU Engine )和ZK客户端引擎(ZK Client Engine)作为投手和捕手一起工作。它们将在浏览器端发生的事件送到运行在服务器端的应用程序,然后更新浏览器段的DOM树,基于组件如何被应用程序操纵。这种方式即所谓的事件驱动编程模型。

执行流

  1. 当用户在浏览器中键入一个URL或点击一个超链接时,一个请求便被送到了Web服务器,如果URI符合ZK的配置[19]ZK 加载器则援引担任这一要求 。

  2. ZK 加载器(ZK loader)加载指定的页面然后解释它,以据此创建和适的组件。

  3. 当解释完整个页面后,ZK 加载器(ZK loader)将结果送到一个HTML页面。然后这个HTML页面被送回浏览器和ZK客户端引擎(ZK Client Engine)[20]一起。

  4. ZK客户端引擎(ZK Client Engine)坐落在浏览器,以监视由客户的活动触发的事件,例如挪动鼠标,或改变某个值。一旦监测到,它就通知ZK AU引擎通过发送一个ZK请求[21]

  5. 当从客户端引擎接到ZK请求后,如果有需要的话AU引擎就更新相应组件的内容。然后,AU引擎通过调用相关的事件处理程序(如果有的话)来通知应用程序。

  6. 如果应用程序选择改变组件的内容,添加或移动组件,AU引擎通过ZK响应(ZK responses)将更新后组件的新内容送至客户端引擎。

  7. 这些ZK响应实际上是一些命令,这些命令指示客户端引擎如何更新DOM树的内容。

     

    sunflower注:

    下面是我选择tree组件的一个行捕获的数据

    dtid=zd_8c&cmd_0=onSelect&uuid_0=z_d__9

    &data_0={"items":["z_d__b"],"reference":"z_d__b","clearFirst":true,"pageX":89,"pageY":141,"which":1,"x":83,"y":12}

     

    其中

    dt是desktop的缩写 ,完整为desktopid=zd_8c,zd_是固定格式

    cmd_0是命令,当前命令是选择命令,

    uuid_0是组建的id,在浏览器中可以看到的id,

    剩余的是一些当前onSelect事件鼠标的位置

     

     

    sunflower注:

    ZK 加载器:web.xml 

     

    <servlet>
    		<description>ZK loader for ZUML pages</description>
    		<servlet-name>zkLoader</servlet-name>
    		<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
    		<!--
    			Must. Specifies URI of the update engine (DHtmlUpdateServlet). It
    			must be the same as <url-pattern> for the update engine.
    		-->
    		<init-param>
    			<param-name>update-uri</param-name>
    			<param-value>/zkau</param-value>
    		</init-param>
    		<!--
    			Optional. Specifies whether to compress the output of the ZK loader.
    			It speeds up the transmission over slow Internet. However, if you
    			configure a filter to post-processing the output, you might have to
    			disable it. Default: true <init-param>
    			<param-name>compress</param-name> <param-value>true</param-value>
    			</init-param>
    		-->
    		<!--
    			Optional. Specifies the default log level: OFF, ERROR, WARNING, INFO,
    			DEBUG and FINER. If not specified, the system default is used.
    			<init-param> <param-name>log-level</param-name>
    			<param-value>OFF</param-value> </init-param>
    		-->
    		<load-on-startup>1</load-on-startup><!-- Must -->
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>zkLoader</servlet-name>
    		<url-pattern>*.zul</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>zkLoader</servlet-name>
    		<url-pattern>*.zhtml</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>zkLoader</servlet-name>
    		<url-pattern>*.svg</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>zkLoader</servlet-name>
    		<url-pattern>*.xml2html</url-pattern>
    	</servlet-mapping>
    	<!-- Optional. Uncomment it if you want to use richlets.
    	-->
    	<servlet-mapping>
    		<servlet-name>zkLoader</servlet-name>
    		<url-pattern>/zk/*</url-pattern>
    	</servlet-mapping>
     

     

    ZK AU( asynchronous update)引擎:web.xml

    	<servlet>
    		<description>The asynchronous update engine for ZK</description>
    		<servlet-name>auEngine</servlet-name>
    		<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
    		<!--
    			[Optional] Specifies the AU processor for particular prefix.
    			<init-param> <param-name>processor0</param-name>
    			<param-value>/upload=com.my.MyUploader</param-value> </init-param>
    		-->
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>auEngine</servlet-name>
    		<url-pattern>/zkau/*</url-pattern>
    	</servlet-mapping>
    
     

     


 

分享到:
评论

相关推荐

    最新整理61份智慧城市各智慧场景业务技术架构图_pp模板(可编辑).pptx

    系统架构概况是指城市智能化系统的总体架构设计,包括合作伙伴接入、xx系统架构概况、管理平台API、渠道个人版、企业版等多个方面。该架构图展示了城市智能化系统的各个组件之间的关系和交互方式,例如合作伙伴接入...

    整理最新个业务条线产品架构图_pp模板(可编辑).pptx

    * 系统架构概况图:展示了系统架构概况图,包括合作伙伴接入、xx 系统架构概况管理平台API渠道、个人版企业版无线语音银行接入等模块。 * 管理平台:涉及管理平台、API渠道、个人版企业版无线语音银行接入等方面的...

    IA-32架构软件开发人员手册

    手册中涉及的核心知识点包括IA-32处理器的详细技术细节、系统架构概况、保护模式内存管理、段和页的保护机制、中断和异常处理等。这些内容构成了软件开发人员在进行系统级编程时所必须掌握的基础知识。 在系统架构...

    产品[业务]架构图-可编辑版.pptx

    6. **系统架构概况**:此部分描述了一个系统如何通过API渠道接入合作伙伴,涵盖了个人版、企业版、无线语音银行接入等。基础业务平台处理资金、支付清算、账务会计,同时有会员信息、商品账、商家信用等核心管控模块...

    支付宝钱包系统架构内部剖析(架构图)

    #### 支付宝系统架构概况 支付宝作为全球领先的数字支付平台之一,其钱包系统的稳定性和高效性对于确保数亿用户的日常交易至关重要。支付宝钱包系统的架构设计充分考虑了高并发、低延迟、安全可靠的需求。本文将...

    产品架构图ppt---内容可编辑

    6. **系统架构概况**:这部分展示了不同系统的接入和交互,如合作伙伴接入、个人版和企业版、通信网关等。产品公共服务、基础业务平台、资金处理、支付清算、账务会计等构成了整个业务流程的基础。同时,系统还涉及...

    【系统架构】最全最强解析:支付宝钱包系统架构内部剖析(架构图).docx

    支付宝钱包系统架构概况: 支付宝钱包系统架构是基于分布式架构设计的,旨在提供高性能、可扩展、可靠的支付服务。该系统架构主要由以下几个部分组成: 1. 默认资金处理平台:负责处理用户的支付请求,包括交易...

    2023产品架构图.pptx

    6. **系统架构概况**: - 接口管理和API渠道:实现不同系统间的交互和数据传输。 - 核心业务平台:如资金处理、支付清算、账务会计等关键业务功能。 - 行业应用平台:为特定行业如航旅、传统零售、B2C电商等提供...

    Android系统架构概况

    Android的架构图如下,图中按照功能结构及面向人群进行划分,可以看出Android分成三个部分:应用部分:包含在Android设备上运行的所有应用,它们是Android系统中直接面向用户的部分。  Android的架构图如下,图中...

    LiveJournal架构现状概况

    LiveJournal架构现状概况,网上收集的,但是来源忘记了!

    IA-32架构软件开发人员手册卷3:系统编程指南

    **1.1 系统架构概况** - **全局和局部描述符表**:这些表包含了一组描述符,用于定义处理器可以访问的各种段和门。 - **系统段、段描述符和门**:系统段描述符提供了对特定内存区域的访问,而门描述符则允许从一个...

    软件技术架构设计概况【刘志虎】.7z.006

    公司技术交流录播视频,主要讲解架构设计、信息流向、软件部署。希望对同行有用。 由于我只有70M的上传权限,所以只能分开上传了,下载后,统一的解压即可,压缩包包括录播视频及PPT文档。

    软件技术架构设计概况【刘志虎】.7z.004

    公司技术交流录播视频,主要讲解架构设计、信息流向、软件部署。希望对同行有用。 由于我只有70M的上传权限,所以只能分开上传了,下载后,统一的解压即可,压缩包包括录播视频及PPT文档。

    开发者说 _ Apollo 3.5各功能模块启动过程解析.pdf

    首先,我们需要了解 Apollo 3.5 的架构概况。Apollo 3.5 的架构主要由三部分组成: Cyber RT 框架、各功能模块和底层平台。Cyber RT 框架是 Apollo 3.5 的核心架构,它提供了一个组件化的框架,允许开发者将不同的...

    2021年中国智能客服行业概览(37页).pdf

    2021年中国智能客服行业概览报告 智能客服行业是近年来中国最具发展潜力的行业...2021年中国智能客服行业概览报告为我们提供了一个清晰的行业发展概况和技术架构概况,为企业和个人提供了有价值的行业信息和技术参考。

    [课堂课件讲解]Java微服务实践-Spring Boot 监管.pptx

    JMX 的架构概况包括设备级别、代理级别和分布式服务级别。设备级别是指 Instrumentation Level,代理级别是指 Agent Level,分布式服务级别是指 Distributed Services Level。JMX 还提供了管理 Bean(MBeans),包括...

    IA-32卷3:系统编程指南

    其中,系统架构概况部分尤为关键,它阐述了全局和局部描述符表、系统段、段描述符和门、任务状态段及任务门等核心概念。这些组件是实现系统安全性和隔离性的基石,确保了不同进程或任务之间的资源分配与访问控制。 ...

Global site tag (gtag.js) - Google Analytics