У меня есть список, на котором onChange (), я обновляю другой список.Таким образом, код выглядит примерно так:
ListBox l1 = new ListBox();
...some items added to l1..
ListBox l2 = new ListBox();
l2.setEnabled(false);
l1.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
//Show info msg
//Update label text on top of the page with "Loading.."
//..Do some processing here..
L2.setEnabled(true);
L2.getElement().setInnerHTML(html);
}
Это работает нормально, за исключением одного сбоя.Пользовательский интерфейс застрял, и l1, l2 и метка не отражают изменения, пока обработка не будет завершена.Конечно, l2 будет отражаться в более поздний момент времени, но l1 и информация тоже не отображаются.
Я пытался использовать scheduleDeferred как -
l1.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
//Show info msg
//Update label text on top of the page with "Loading.."
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Overide
public void execute() {
//..Do some processing here..
}
}
L2.setEnabled(true);
L2.getElement().setInnerHTML(html);
}
}
Но выше все равно не помогает,это все еще работает как обычно.Есть предложения?