Direct实时数据
使用Direct实时数据,开发人员可以将数据从视图中分离出来,通过ZK框架开启ListModel接口,开发人员只需要提供数据,不用再亲自处理网格了。
1 <zscript>
2 String[] data = new String[1000];
3 for(int j=0; j < data.length; ++j) {
4 data[j] = "option "+j;
5 }
6 ListModel strset = new SimpleListModel(data);
7 </zscript>
8 <grid width="100px" height="100px" model="${strset}">
9 <columns>
10 <column label="options"/>
11 </columns>
12 </grid>
2 String[] data = new String[1000];
3 for(int j=0; j < data.length; ++j) {
4 data[j] = "option "+j;
5 }
6 ListModel strset = new SimpleListModel(data);
7 </zscript>
8 <grid width="100px" height="100px" model="${strset}">
9 <columns>
10 <column label="options"/>
11 </columns>
12 </grid>
网格将数据发给客户端,如果数据较大,可以节省很多网络通信。可伸缩性问题更少了。
Direct客户端控制
使用Direct客户端控制,开发人员可以使用JavaScript或标记语言创建窗口小部件,在客户端实现部分功能,提高响应能力。在下面的例子中,我们展示了一个例子,如何利用ZK的标记语言,采用纯客户端编程实现一个简单的功能显示用户的输入。
1 <page id="main">
2 <textbox id="searchBox"/>
3 <label id="value">
4 </page>
5
6 <script>
7 zk.zuml.Parser.createAt('#main', null, null, function (page) {
8 page.$f('searchBox').listen({onChanging: function (event) {
9 page.$f('value').setValue(event.data.value);
10 }});
11 </scrpit>
2 <textbox id="searchBox"/>
3 <label id="value">
4 </page>
5
6 <script>
7 zk.zuml.Parser.createAt('#main', null, null, function (page) {
8 page.$f('searchBox').listen({onChanging: function (event) {
9 page.$f('value').setValue(event.data.value);
10 }});
11 </scrpit>
开发人员可以自由定制客户端功能以满足他们的各种需求。个性化问题更少了。
RIA的未来是Direct RIA
构建企业级应用程序从来不是一件容易的事情,更别提同时要将用户界面做好看。此外,选择一个正确的解决方案满足各种需求并不容易,Direct RIA提供了一个客户端+服务器的融合方法,开发人员使用Direct RIA编程模型可以提高生产力,而且可以直接访问前端和后端,如果需要,开发人员还可以自己对客户端进行编程,定制需要的个性化功能。Direct RIA给开发人员提供了一个整体解决方案,既可以提高他们的生产力,又可以有效地控制。
关于作者
Robbie Cheng是ZK框架的传教士,他是ZK Mobile for Android和ZK论坛的主要开发者,他是《ZK:无JavaScript框架Ajax》一书的合著者,在AjaxWorld杂志,TheServerSide和Javalobby发表了大量的文章,他也积极参与了各种活动,如谷歌开发者日(Google Developer Day),移动星期一(Mobile Monday)和OSDC 2009。