2
    @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值是绑定的。
和 a button,当单击开始进程时。
makeProgress()我做一些工作并发布命令。

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

我错过了什么?

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

4

1 回答 1

0

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

于 2013-12-30T22:38:51.423 回答