zk里面的每个对象都是由两部分组成的:component和widget。
component是一个java对象,它运行在server端,是一个指向ui对象的引用,它拥有ui对象的属性只不过是抽象的,是看不见的。而widget是一个js对象,运行在client端,它指向的是和用户交互的ui对象,因此是可以看得见得。
component和widget的关系是一对一的,然而,当componenti没有与page关联时,肯定没有一个widget与之对应,相反一个widget可以独立存在于page而不需要与响应的component关联。
component和widget的交互都是异步的,都是由zk自动完成的,我们可以设想这样一个情景:在一个图书管理系统中,当用户点击某个书名的时候,可以进入到该书的详细页面,我们有两种方式来解决这个问题:一种是将书的详细信息在widget实例化之前都准备好,然后对于每个获取详细信息的请求都一一展示。另一种方式是我们在一开始并没有将详细信息load,然后我们等待用户的请求,只有当用户的请求到来的时候,我们才显示详细信息,zk可以做到这点。