Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка окна 
:(
    Опции темы
Gregof
Дата 3.6.2004, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.6.2004

Репутация: 1
Всего: 12



Мне необходимо выполнить длинный и долгий скрипт. Для успокоения юзера хочу выкидывать на экран wait-окно, но, в силу линейности выполнения, оно на экране не отрисовывается, точнее отрисовывается, но уже после выполнения скрипта.

Можно ли как-то организовать синхронную отрисовку ?
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф)
PM MAIL ICQ   Вверх
GoodBoy
Дата 3.6.2004, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Такой вариант подойдет:
В качестве цели возврата для скрипта указать нуль-фрейм и пока в него что-нить не возвратиться выводить слой с надписью "Ожидайте завершения операции". А потом с инфой из нуль-фрема делать что нужно.


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Gregof
Дата 4.6.2004, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.6.2004

Репутация: 1
Всего: 12



Я не совсем хорошо знаком с Web-программированием и для меня загадка что-такое нуль-фрейм и как указать его целью возврата скрипта.

Я попробовал зажигать слой на входе в скрипт, но из-за той же проблемы с перерисовкой он появляется только по завершении скрипта.

Есть идея создавть новое окошко и у него на событие onload вешать требуемый мне скрипт, но это сопряжено с проблемой передачи туда параметров. Мне это надо не в одном месте и придётся делать отдельный класс посредник. Трудностей я конечно не боюсь, но может можно как-то проще и красивее.
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф)
PM MAIL ICQ   Вверх
Sardar
Дата 5.6.2004, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Нульфрейм это фрейм в 0 пикселей - не видим. Обычно используется для интерактивной загрузки данных.
Если идет загузка, то можно вместе с данными отсылать JS код с нотификациями или просто повесить функцию на интервал(window.setInterval). Работает т.к. загрузка выполняется паралельно основному скрипту.

Если выполняются сложные вычисления, то тут ничем не поможешь, т.к. паралельного выполнения в JS нет. Можно в момент работы скрипта через каждые n итераций обновлять wait-окно. Интервал не поможет, т.к. выполняется как и все события в момент простоя.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gregof
Дата 7.6.2004, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.6.2004

Репутация: 1
Всего: 12



Цитата
Можно в момент работы скрипта через каждые n итераций обновлять wait-окно.


А как будет происходить обновление если нить занята? Или есть какой-то хитрый способ?
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф)
PM MAIL ICQ   Вверх
Gregof
Дата 7.6.2004, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.6.2004

Репутация: 1
Всего: 12



После долгих раздумий было сделано так:
Код

//начало скрипта
showWait()//посылаем окно на рисование
var th=this;
var t=window.setInterval(function ( e )
{
      /*продолжение скрипта
      обращение к среде родительской функции через пременную th
      пример: var p = th.getProp(X);*/
      window.clearInterval(t);
},1);


Вариант не наилучший, но верный.

Всем спасибо за помощь!!!
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2046 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.