Direct RIA编程模型
Direct RIA编程模型包括Direct UI访问,Direct数据访问,Direct实时数据和Direct客户端控制。
Direct UI访问
由于应用程序运行在服务器端,应用程序可以直接访问窗口小部件(widget),我们用ZK(http://www.zkoss.org/)举一个例子,我们在服务器上创建一个Java 二维对象,只需要将这个对象放到窗口小部件中,用户就可以直接在他们的浏览器中看到这个图形。
1 <image id="image">
2 <button onClick='draw(10,10,10,10)'/>
3 <zscript>
4 void draw(int x1, int y1, int x2, int y2) {
5 LiveImage li = new LiveImage(400, 300, LiveImage.TYPE_INT_RGB);
6 Graphics2D g2d = li.createGraphics();
7 Line2D line = new Line2D.Double(x1, y1, x2, y2);
8 g2d.draw(line);
9 image.setContent(Images.encode("test.png", li));
10 }
11 </zscript>
2 <button onClick='draw(10,10,10,10)'/>
3 <zscript>
4 void draw(int x1, int y1, int x2, int y2) {
5 LiveImage li = new LiveImage(400, 300, LiveImage.TYPE_INT_RGB);
6 Graphics2D g2d = li.createGraphics();
7 Line2D line = new Line2D.Double(x1, y1, x2, y2);
8 g2d.draw(line);
9 image.setContent(Images.encode("test.png", li));
10 }
11 </zscript>
使用Direct RIA后,开发人员不用再为客户端编程而烦恼了,换句话说,即使不学习任何客户端编程,也可以快速开始一个项目。客户端编程工作量急剧减少。
Direct数据访问
此外,应用程序可以很容易访问服务器端资源,包括数据库和Web Service,因为它们前端和后端都运行在服务器上,下面显示了一个简单的从数据库获得数据的示例,使用ZK框架将数据显示给用户,当用户点击按钮后,就会显示一条欢迎消息。
1 Hi. <label id="name"/>
2 <button>
3 <attribute name="onClick">
4 User usr = Database.getUserById(1);
5 name.setValue(usr.getName());
6 </attribute>
7 </button>
2 <button>
3 <attribute name="onClick">
4 User usr = Database.getUserById(1);
5 name.setValue(usr.getName());
6 </attribute>
7 </button>
创建Web应用程序的最大挑战之一是异步编程模型,它包括从服务器获取数据,更新DOM树的各种步骤,但在Direct RIA中,前端和后端是无缝集成的。异步通信变少了。