我更改了几十个gridpanel列的宽度。我想在表演时展示一个面具。
grid.setLoading(true);
Ext.suspendLayouts();
// columns -- grid columns
columns.forEach(function (column) {
column.setWidth(...);
}, this);
// fires 'resumelayouts' event and immediately returns.
Ext.resumeLayouts();
// performs before everything updates its layout, which takes 3-4 seconds.
grid.setLoading(false);
答案 0 :(得分:0)
问题是你最终会占用当前的“线程”,因此浏览器没有机会重新绘制。你可以这样做:
grid.setLoading(true);
setTimeout(function() {
Ext.suspendLayouts();
columns.forEach(function (column) {
column.setWidth(...);
}, this);
Ext.resumeLayouts();
grid.setLoading(false);
}, 1);
上面放弃了对当前“线程”的控制,并在开始布局操作之前允许重绘。