1

私はzkフレームワークのMVVMアプローチを使用しており、1ページあたり1000〜2000行で表示したいです(これは本当にユーザーにとって必要です)しかし、それは多くの情報であり、サーバー側のメモリに( )gridを保存すると、すべてのユーザーが約30Mbを消費します。この種の情報をレンダリングし、サーバー側でメモリをクリーンアップするだけで何が良いかを判断しますが、このアプローチを使用する場合は、クライアント側のプログラミングに進む必要があります。(ajax呼び出しなどのjsを記述します。)この問題の適切な解決策が見つかりません。何を使用する必要がありますか、またはクライアント側で、またはレンダリンググリッドの後にデータをnullにするだけですか?grid modelList<Object>auRequestRowRenderRender 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);
4

1 に答える 1

0

ZKは、ロジッククライアント側を処理するための多くの方法を提供します。
最初に、クライアント側のzkマニュアルの通信部分を読む必要があります。
さらに、このawnserは役立つはずです。

javas gcによってデータが削除されないように、参照をmodel="@load(vm.o)"呼び出して保存することを知っておく必要があります。Grid.setModel(...)


ですから、 MVVMを理解している限り、それがペターンを壊したとしてもMVVMを使用することによってこれを解決する唯一の方法は、電話することだと思います

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

次のようなメソッドを追加します

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


しかし、あなたのタスクには、ZK MVC、より優れた可読性/保守性のcos、およびjavaのより多くの制御cosを使用したいと思います。

于 2012-12-18T12:34:32.903 に答える