![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Gregof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 3.6.2004 Репутация: 1 Всего: 12 |
Мне необходимо выполнить длинный и долгий скрипт. Для успокоения юзера хочу выкидывать на экран wait-окно, но, в силу линейности выполнения, оно на экране не отрисовывается, точнее отрисовывается, но уже после выполнения скрипта.
Можно ли как-то организовать синхронную отрисовку ? --------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф) |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
Такой вариант подойдет:
В качестве цели возврата для скрипта указать нуль-фрейм и пока в него что-нить не возвратиться выводить слой с надписью "Ожидайте завершения операции". А потом с инфой из нуль-фрема делать что нужно. |
|||
|
||||
| Gregof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 3.6.2004 Репутация: 1 Всего: 12 |
Я не совсем хорошо знаком с Web-программированием и для меня загадка что-такое нуль-фрейм и как указать его целью возврата скрипта.
Я попробовал зажигать слой на входе в скрипт, но из-за той же проблемы с перерисовкой он появляется только по завершении скрипта. Есть идея создавть новое окошко и у него на событие onload вешать требуемый мне скрипт, но это сопряжено с проблемой передачи туда параметров. Мне это надо не в одном месте и придётся делать отдельный класс посредник. Трудностей я конечно не боюсь, но может можно как-то проще и красивее. --------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Нульфрейм это фрейм в 0 пикселей - не видим. Обычно используется для интерактивной загрузки данных.
Если идет загузка, то можно вместе с данными отсылать JS код с нотификациями или просто повесить функцию на интервал(window.setInterval). Работает т.к. загрузка выполняется паралельно основному скрипту. Если выполняются сложные вычисления, то тут ничем не поможешь, т.к. паралельного выполнения в JS нет. Можно в момент работы скрипта через каждые n итераций обновлять wait-окно. Интервал не поможет, т.к. выполняется как и все события в момент простоя. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Gregof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 3.6.2004 Репутация: 1 Всего: 12 |
А как будет происходить обновление если нить занята? Или есть какой-то хитрый способ? --------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф) |
|||
|
||||
| Gregof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 3.6.2004 Репутация: 1 Всего: 12 |
После долгих раздумий было сделано так:
Вариант не наилучший, но верный. Всем спасибо за помощь!!! --------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф) |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |