ZK progressmeter 不适用于没有事件的 for 循环

ZK progressmeter is not working with for loop without events

我正在使用 ZK 框架。我只想在我的 MySQL 数据库中插入很多行。插入数据需要几秒钟。在那段时间里,我只想显示一个进度表,告诉用户插入数据库的行数。

我这样试过:

rowCount = qModel.executeInsert();      
for(long j = 1; j <= rowCount; j++)
{
    sum = sum + 100 / rowCount;
    if (j == rowCount)
    {               
        sum = 100;
    }   
    progressMeter.setValue(sum);            
    countLabel.setValue((rowCount - 1) + " Rows inserted");
    BindUtils.postNotifyChange(null, null, countLabel, "_value");
}   

这里rowCount是插入数据库的总行数。我知道在插入过程之后进度表正在更新。 但我希望我的进度表更新时没有忙标签。

如果有人知道解决方案,请帮助我。欢迎所有建议。提前致谢。

其实很简单,

只要你在同一个执行中,你的 GUI 就不会发生更新。
您唯一的解决方案是使用多个调用,通过计时器实现或启用服务器推送。

一切看似复杂,但也有好消息。
Robert Wenzel 写了一篇关于简化长操作的小谈,其中包括简化此操作的全部基础知识。

请看这个:

https://www.zkoss.org/wiki/Small_Talks/2015/January/Simplify_Long_Operation_Handlings