Java zk框架内存网格

Java zk框架内存网格,java,jakarta-ee,zk,java-ee-5,Java,Jakarta Ee,Zk,Java Ee 5,我使用zk framework MVVM方法,希望显示网格,每页1000-2000行。这对于用户来说确实是需要的,但它包含大量信息,如果我将网格模型列表保存在服务器端的内存中,每个用户将消耗大约30Mb的信息。我决定什么是好的,只要在服务器端呈现这种信息和干净的内存,但如果我使用这种方法,我应该转到客户端编程。为ajax调用等编写js。 无法找到解决此问题的好方法。我应该在客户端使用auRequest、RowRender或Render脚本,还是在渲染网格后使用空数据 UPD:ZUL 爪哇: UP

我使用zk framework MVVM方法,希望显示网格,每页1000-2000行。这对于用户来说确实是需要的,但它包含大量信息,如果我将网格模型列表保存在服务器端的内存中,每个用户将消耗大约30Mb的信息。我决定什么是好的,只要在服务器端呈现这种信息和干净的内存,但如果我使用这种方法,我应该转到客户端编程。为ajax调用等编写js。 无法找到解决此问题的好方法。我应该在客户端使用auRequest、RowRender或Render脚本,还是在渲染网格后使用空数据

UPD:ZUL

爪哇:

UPD


ZK提供了许多处理逻辑客户端的方法。 首先,你应该读这本书。 此外,这应该是有帮助的

您应该知道,model=@loadvm.o调用Grid.setModel。。。 并保存一个引用,以便javasgc不会删除数据

因此,我认为解决这个问题的唯一方法是,即使需要,仍然使用MVVM 就我所理解的MVVM而言,这将是一个

并添加如下方法

@Command("createRows")
public void createRows(@BindingParam("grid") Grid grid){
 //add rows manually here
}
但我不得不说,对于您的任务,我更喜欢使用ZK MVC,
更好的可读性/可维护性和更多的java控制成本。

首先请提供代码。第二,如何同时显示2000行?您使用ZK CE还是PE/EE?这些是什么样的数据?不同的用户是否需要加载不同的数据?如果不是,你应该缓存你的数据相同,如果只有小的差异必须单独保存。我添加了伪代码,是的,2000行这是可怕的,但可以。我使用ZK的免费版本。我认为这是一个很好的例子。数据POjO字符串和int。是,每个用户需要加载不同的数据。我只想像php一样输出html。并通过JS发送AJAX或通过auRequests。但是我找不到教程。官方zk切割成碎片。很难理解。谢谢。在我使用setModelnull之后,它会从网格中删除所有行。对于25行实例,我真的不需要2Mb的服务器。模型中的Pojo类在渲染后也可以为空。我根据您的建议更新了我所做的,但仍然在内存中。我在你的工具箱里看到了。行和行以及标签。根GC引用到zk的DesktopImpl->CacheMap。你能解释一下MVC方法是怎样的吗?我问它是因为我想你用什么方法。核心还是一样,我不知道你有什么问题。所以,可能的情况是,通过在createRows中本地加载,而不使用setModel,来删除从DB数据结构中加载的I假设。。。但是,如果您想要一个没有行和行实例的服务器端网格,那么只需要zkee。或者,您可以自己实现stubonly功能,但我没有这方面的经验。
 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);
     }
 }
    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);
onCreate="@command('createRows',grid=self)"
@Command("createRows")
public void createRows(@BindingParam("grid") Grid grid){
 //add rows manually here
}