使用mvvm时如何在zk中更新进度表

问题描述 投票:2回答:1
    @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);
    }

Zul

<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并单击以启动过程。在makeProgress()中,我做部分工作并发布命令。

我希望它显示进度条每100毫秒增加一。但是,当我尝试使用它时,进度条会在10秒(100毫秒等待* 100)后直接显示100%。

我想念什么?

或者有更好的方法可以做到这一点?

java progress-bar zk server-push zul
1个回答
0
投票

[不确定是否可行。如果您需要进度条来自动更新,则可能必须使用SelectorComposer而不是BindComposer。 SelectComposer可以将数据推送到客户端。您可以让计时器运行@interval并继续更新数据。

© www.soinside.com 2019 - 2024. All rights reserved.