Показывать спиннер во время порсинга в GWT - PullRequest
0 голосов
/ 25 ноября 2011

Хотелось бы узнать, можно ли показывать счетчик, пока приложение выполняет некоторые вычисления.

Я использую ползунок для изменения изображения SVG. Я вызываю функцию, которая делает вычисления, чтобы изменить изображение SVG, когда происходит событие MouseUp. Теперь, поскольку образ состоит из множества путей SVG, требуется некоторое время (около 1 с), пока изображение SVG не будет обновлено; Здесь я хочу показать счетчик, чтобы пользователь знал, что приложение обрабатывает данные. Кстати, когда я говорю «обновление образа SVG», я фактически удаляю текущие пути SVG и создаю / добавляю новые пути в DOM.

Я создал виджет для показа счетчика, он расширяет класс PopupPanel. Я прочитал это, чтобы обработать виджет, его нужно сначала добавить в DOM, поэтому я создаю и скрываю этот виджет в конструкторе View (я использую MVP), поэтому, когда приложение обрабатывает, мне просто нужно вызвать функцию show ().

Можно ли добиться того, чего я хочу?

1 Ответ

2 голосов
/ 25 ноября 2011

Если вы можете разделить свои 1 с обработки на 20 частей по 0,05 с, то вы можете абсолютно достичь этого.Алгоритм!

1: отображать график прогресса вращения во всплывающем окне

2: использовать Scheduler.scheduleDeferred для планирования первых / следующих 0,05 с работы

3: приконец отложенного кода, перейдите к шагу 2 и запланируйте следующую часть работы

4: Когда вся работа будет завершена, скройте график прогресса вращения!

Планируя работу небольшими порциямивы даете браузеру возможность выполнять другие его задачи - анимировать счетчик, получать входные данные и т. д. Если вы просто создаете большой цикл, выполнение которого занимает 1 с, то за это время ничего другого не произойдет.

...