假设您有一个用户界面小部件,并且在某些状态更改时,您需要设置执行一些操作。所以你做这样的事情:
widget.setSize(400, 300);
widget.setHeader("whatever");
widget.setData(new int[] {2, 3, 5});
widget.setFancyThingEnabled(true);
然后假设这些操作中的每一个都会触发小部件的整体刷新。那是低效的。
我知道解决这个问题的几种方法,但是正确/最好/最优雅的模式是什么?我知道我可以:
- 创建一些
Property
对象,我可以填写然后将其提供给小部件。 - 有一些
setRefresh(enabled:boolean)
方法来包装交易。 - 只允许通过回调方法设置属性,然后将在事务中执行。
- 将刷新放在队列中并等待一段时间,然后再继续。
我正在使用 GWT,它在任意慢速机器上的浏览器上运行,但这几乎适用于任何环境。
编辑: 请记住,UI 是一个示例,我指的是从一个状态到另一个状态的转换会在其他中间状态上触发太多不必要的计算的一般场景。