WillZhang 2011-04-07
现在我们总结一下zk框架的处理流程,包括:加载页面的处理流、对于ajax请求的处理流
加载页面的处理流大概分下面的几个步骤:
1、用户发送url请求,如果这个url和zk中我们定义的url相吻合,那么zk加载器就会引用这个请求。
2、zk加载器负责加载指定的页面,并在服务器端将这些页面转化成java可操控的component。
3、当加载完页面后,zk加载器会将结果以html的形式发送到zk 客户端引擎。
4、zk客户端引擎将widget转化成dom并加dom插入到浏览器的dom对象树中从而形成用户可见的页面。
5、然后zk 客户端引擎会等待用户的请求,如果用户的请求是一个页面,那么这个处理流又会重新开始,如果用户的请求是一个ajax请求,那么会到另外一个处理流中,就是我们下面要讲到的。
对于ajax请求的处理流大概分为下面几个步骤:
1、这种情况多发生在用户出发了绑定到widget的event。
2、当某个widget的event被出发时,这个时间会向他的父级widget上传,然后层层上传,直到到达客户端引擎,其决定何时向服务器端引擎发送ajax请求。
3、当接收到ajax请求后,服务器端引擎会引用这个request。
4、然后服务器端会根据request一个一个的通过定义的时间监听器处理请求。
5、处理完成以后,服务器端引擎会将更新的内容打包并以xmlresponse的形式发送到客户端引擎。
6、客户端引擎接收到相应后,会操纵dom对象,以完成页面的更新。
ZooKeeper支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取ZooKeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向ZooKeeper提交相应的命令