解决方案 »
- javaScript: 从后台拿到数据后 怎么显示在textarea标签上或其他的HTML标签<input type="text">
- 不知道这个问题算不算网页爬虫
- php服务端,xfire客户端,webservice开发的问题
- 为什么服务器换IP以后原来网页上上传的图片不显示了
- 一个简单到极点但是能逼死新手的问题!!!TOMCAT
- 老声又谈 struts 中文件上传
- 求Together Edition for JBuilder X Developer的Keymaker!
- --- 白痴问题请教Hibernate前辈 ---
- 能否使用J2EE使非java程序之间能够互相传递信息?
- 急!紧急求助!关于jbuilder7+jboss3.x的问题
- struts2的默认execuet方法不执行?
- Tomcat版本与Struts2!请高手指教!
基于AJAX的机制包括三个部分,分别为:ZK 加载器(ZK loader),ZK AU引擎(ZK AU Engine ),和ZK客户端引擎(ZK Client Engine)。
ZK 加载器(ZK loader):当应用启动时,加载器已经启动,当客户端发送URL请求时,加载器解释请求。
ZK客户端引擎(ZK Client Engine):是由JavaScript语言编写的。浏览器缓存ZK客户端引擎,所以通常仅需在首次读取时设置引擎。ZK Client Engine的主要职责有:当客户触发事件时,ZK Client Engine捕捉客户端事件,将事件封装然后放入客户端事件队列(封装后的请求是一个特定格式的字符串),发送队列中的事件到服务器;当接收到服务器端的响应时,接收响应信息并解析信息(此信息为一个XML格式的串),根据解析后的数据刷新页面。
ZK AU引擎(ZK AU Engine ):运行在服务器端,当服务器接收到客户端发送的请求(字符串),然后解析此请求,根据请求做后台处理(包括model更新,响应信息组装)。
基于用户的请求,ZK 加载器(ZK loader)加载一个ZK页面,解释它,并将结果送到HTML页面来响应URI请求。ZK页面是用一种被称为ZUML的标记语言写成的。ZUML,就像HTML,被用来描述什么组件被创建,以及如何把它们呈现出来。这些组件一旦被创建,就会一直处于可用状态直到会话超时。
然后ZK AU引擎(ZK AU Engine )和ZK客户端引擎(ZK Client Engine)作为投手和捕手一起工作。它们将在浏览器端发生的事件送到运行在服务器端的应用程序,然后更新浏览器段的DOM树,基于组件如何被应用程序操纵。这种方式即所谓的事件驱动编程模型。
执行流
当用户在浏览器中键入一个URL或点击一个超链接时,一个请求便被送到了Web服务器,如果URI符合ZK的配置,ZK 加载器开始发挥作用 。
ZK 加载器(ZK loader)加载指定的页面然后解释它,以据此创建合适的组件。
当解释完整个页面后,ZK 加载器(ZK loader)将结果送到一个HTML页面。然后这个HTML页面被送回浏览器和ZK客户端引擎(ZK Client Engine)一起。
ZK客户端引擎(ZK Client Engine)位于浏览器,以监视由客户的活动触发的事件,例如挪动鼠标,或改变某个值。一旦监测到,它就通知ZK AU引擎通过发送一个ZK请求。
当从客户端引擎接到ZK请求后,如果有需要的话AU引擎就更新相应组件的内容。然后,AU引擎通过调用相关的事件处理程序(如果有的话)来通知应用程序。
如果应用程序选择改变组件的内容,添加或移动组件,AU引擎通过ZK响应(ZK responses)将更新后组件的新内容送至客户端引擎。
这些ZK响应实际上是一些命令,这些命令指示客户端引擎如何更新DOM树的内容。