java - zk框架内存网格

标签 java jakarta-ee zk java-ee-5

我使用zk框架MVVM接近并想要显示grid每页 1000-2000 行。(这确实是用户需要的)但是信息量很大,如果我保存我的 grid,每个用户将消耗大约 30Mb model ( List<Object> ) 在服务器端的内存中。我决定什么是好的,只需在服务器端呈现此类信息并清理内存,但如果我使用这种方法,我应该进行客户端编程。 (编写js进行ajax调用等) 对于这个问题找不到好的解决方案。我应该使用什么auRequest , RowRenderRender script在客户端还是渲染网格后只是空数据?

UPD: ZUL

<grid apply="org.zkoss.bind.BindComposer"
      viewModel="@id('vm') @init('Pojo')"
      self="@define(content)" height="100%" width="100%">
      model="@load(vm.o)" emptyMessage="${c:l('empty_table')}"
      stubonly="true" onCreate="@command('clear')">
   <columns>
      ...cols...
   </columns>
   <template name="model">
      <row>
           <label value="@load(each.data)" />
      </row>
   </template>
</grid>

JAVA:

 public class Pojo {

     private List<Object> o;
     private Grid g;

     @Init
     public void init(){
        o = loadFromDaoOneHundredItems()
     }

     @AfterCompose
     public afterCompose(@ContextParam(ContextType.VIEW) Component view){
          g.setPageSize(1000);
     }
 }

UPD

    final Rows rs = new Rows();
    for (int i = 0; i < 1000; i++) {
        final Row r = new Row();
        r.appendChild(new Label("sdf"));
        r.appendChild(new Label("sdf"));
        r.appendChild(new Label("sdf"));
        rs.appendChild(r);
    }
    grid.appendChild(rs);
    ListModelList<Object> o = null;
    grid.setModel(o);

最佳答案

ZK 提供了多种方法来处理您的逻辑客户端。
首先您应该阅读communication part of the client-side zk manual .
另外,this awnser应该会有帮助。

您应该知道,model="@load(vm.o)" 调用 Grid.setModel(...)
并保存一个引用,这样数据就不会被javas gc删除。

所以我认为解决这个问题的唯一方法是仍然使用 MVVM,即使它
据我了解 MVVM 打破模式,将调用

onCreate="@command('createRows',grid=self)"

并添加一个类似的方法

@Command("createRows")
public void createRows(@BindingParam("grid") Grid grid){
 //add rows manually here
}

但我不得不说,对于你的任务,我更愿意使用 ZK MVC,
java的cos更好的可读性/可维护性和更多的控制cos。

关于java - zk框架内存网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904509/

相关文章:

java - 使用 gcc 创建共享库

java - 认证有效用户

java - JSF2 : inject service objects to managedbean from Spring?

java - ZK 8 MVVM 子对象的绑定(bind)属性 - 没有更改通知?

java - 实现通用工厂

java - 单击按钮即可打开 JDialog

java - C# 和 Java 规范在有符号整数溢出时是否阐明了相同的行为?

java - EJB 空点异常

java - ZK - 数据更改后树不刷新

zk - ZK中如何使用Selector查询