JavaScript. Последовательность выполнения процедур

booter

Новичок
JavaScript. Последовательность выполнения процедур

Итак, задача черезвычайно проста - нужно на момент начала процедуры обработки щелчка мыши на элементе выдать окошко с надписью типа "идет обработка", по завершению процедуры обработку убрать. Вроде все просто.

Последовательность действий проста - на событие (в данном случае на radio) через onClick вешается искомая процедура. В начале в нее вписывается код, показывающий окошко (оно в отдельном слое, спрятанным до поры до времени), в конце - код, окошко прячущий. Вроде просто.

Все бы ничего, но по непонятной причине эта хрень не работает ни в ОгнеЛисе, ни в ИЕ. Только Опера дает приемлемый результат, выполняя требуемую последовательность действий. В первых двух сначала отрабатывается код процедуры (которую и должно экранировать окно), а лишь затем - показывается и тут же прячется предупреждение. Фишку и, самое главное, логику подобного исполнения понять не могу. Где я дурак?
 

Кром

Новичок
Возможно процедура обрабатывается очень быстро, поэтому окошко просто выводится и прячется. Но это только "возможно".
Можно увидеть код, если он небольшой?
 

booter

Новичок
Возможно, но тогда и смысла выводит упреждающее окошко нету. К сожалению, кода много, весь вываливать смысла нет, а частично - неполная картина. Буду копать дальше.
 

Линка

Новичок
booter
Кром на все сто прав . У тебя быстро выполняется скрипт и окошко успевает спрятаться .
Я тоже столкнулась с такой пробл.
Решение просто до безобразия:
Ставиш задержку типа на 0,5 сек setTimeout(pause, 500);
а в функции pause() скрываешь свое инфо окно
 

booter

Новичок
Дык оно логично так предположить, если только не один маленький нюанс - период между временем нажатия на элемент управления и моментом появления изменений согласно процедуре весьма значителен. Т.е. такое ощущение, что действия скрипта пускают параллельными потоками, в этом случае согласен - отключать окно можно и через паузу. Скорее всего так и сделаю. Спасибо.
 

DeadMorozBLR

Новичок
Всё гораздо проще - IE отрисовывает страницу только после того, как выполнится твой код и наступит простой. Для того, чтобы создать этот простой перед началом выполнения твоего длинного участка кода можно применить следующий трюк:
Код:
showModalDialog('javascript:window.close()');
он незаметно откроет и сразу закроет модальное окно, которое остановит выполнение скрипта в твоем окне и позволит браузеру отрисовать страницу.

PS: хз, почему javascript в CODE отображается раздельно =)
 
Сверху