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