假设您有一个用户界面小部件,并且在某些状态更改时,您需要设置执行某些操作。 所以你做了类似的事情:
widget.setSize(400, 300);
widget.setHeader("whatever");
widget.setData(new int[] {2, 3, 5});
widget.setFancyThingEnabled(true);
然后假设每个操作都触发整个窗口小部件的刷新。那效率很低。
我知道有几种方法可以解决这个问题,但是这样做的正确/最好/最优雅的模式是什么? 我知道我可以:
Property
对象,我可以填写,然后将其提供给小部件。setRefresh(enabled:boolean)
方法来包装交易。我正在使用GWT,它在任意慢的机器上运行在浏览器上,但这几乎适用于任何环境。
修改 请记住,UI是一个示例,我指的是从一个状态到另一个状态的转换会触发对每个其他中间状态进行过多不必要计算的一般情况。
答案 0 :(得分:2)
widget
.startAction() // instance of WidgetAction returned
.setSize(400, 300)
.setHeader("whatever")
.setData(new int[] {2, 3, 5})
.setFancyThingEnabled(true)
.close(); // actual changes made for UI
答案 1 :(得分:0)
不必要,因为浏览器已经在为您执行此操作。这是可能的,因为在完成整个当前JavaScript事件处理程序之前不必进行渲染。与某些桌面GUI框架相比,它实际上是Web开发的一大优势。