Xpoint
   [напомнить пароль]

Динамическое создание элементов на Wizardpage

Метки: [без меток]
2007-02-27 21:06:51 [обр] KML[досье]
На одной из страниц wizard-a нужно динамически отрисовывать элементы, чтобы юзер видел как идет процесс. Решил воспользоваться методом onpageshow, но этот метод вызывается перед отрисовкой страницы. В результате перед отрисовкой страницы возникает задержка и юзер видит уже полностью отрисованную страницу.
Как-то можно начать создание элементов после отрисовки страницы?
спустя 1 час 24 минуты [обр] Владимир Палант(434/4445)[досье]
Пользуйтесь таймаутами. Таймаут в 0 миллисекунд выполнится уже после отрисовки страницы. Если потом нужно опять отрисовать и продолжить выполнение — ставьте еще один таймаут в 0 миллисекунд.
спустя 14 часов [обр] KML[досье]

При попытке использовать timeout получаю ошибку - timeout is not defined

for (var i=0; i<accounts.length; i++){
  [...]
  timeout(0);
  [...]
}

Пробовал завернуть тело цикла в отдельную функцию и применить setTimeout, но отрисовка происходит только после окончания цикла.

спустя 18 минут [обр] Владимир Палант(434/4445)[досье]
Разумеется setTimeout():
setTimeout(processAccount, 0, 0);

function processAccount(accountNum) {
  if (accountNum >= accounts.length)
    return;

  // Do something

  setTimeout(processAccount, 0, accountNum + 1);
}
спустя 44 минуты [обр] KML[досье]
Спасибо, работает; не ожидал что прийдётся разбивать метод на два куска и играться с setTimeout().
Я надеялся, что существует нечто наподобие Application.ProcessMessage.
Например в моём случае я думал вывести анимированную GIF-ку, чтобы он крутилась, пока расширение делает некоторую работу, но анимация во время этого процесса не работает, а в конце процесса я заменяю GIF-ку на другую картинку.
Можно как-то обойти эту проблему?
спустя 1 час 29 минут [обр] Владимир Палант(434/4445)[досье]
Нет, JavaScript не многопоточный язык — он выполняется в том же потоке, что и отрисовка пользовательского интерфейса. Если не играться с nsIThread, конечно, но это я вам не рекомендую.
Powered by POEM™ Engine Copyright © 2002-2005