java在使用mvvm时如何在zk中更新progressmeter
@GlobalCommand
@Command
@NotifyChange("*")
public void makeProgress(){
int progress = getProgress();
if(progress == 100){
return;
}
progress++;
Thread.sleep(100); // do some part of time consuming work
setProgress(progress);
BindUtils.postGlobalCommand(null, null, "makeProgress", null);
}
祖尔
<window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.javaBean')">
<progressmeter value="@bind(vm.progress)" width="300px" />
<button onClick="@command('makeProgress')"></button>
</window>
我想让用户不断更新已完成工作的百分比。(我正在使用mvvm
模型)
所以我创建了一个progressmeter
,它的值是bind
和一个button
,当单击开始流程时
在{
我希望它显示的进度条每100毫秒增加一次。 但当我尝试时,进度条在10秒后直接显示100%(100毫秒等待*100)
我错过了什么
还是有更好的方法来做到这一点
# 1 楼答案
我不确定这是否有效。。如果需要自动更新进度条,则可能必须使用SelectorComposer而不是BindComposer。SelectComposer可以将数据推送到客户端。您可以让计时器运行@interval并不断更新数据