Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для snake32
3515 / 1698 / 236
Регистрация: 26.02.2009
Сообщений: 8,511
Записей в блоге: 6

Фоновое выполнение JS-кода

04.07.2011, 17:19. Показов 2966. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени!
У меня есть функция выполнение которой занимает достаточно много времени и что бы юзер не подумал что: "Шеф! Всё пропало!" решил добавить протецкий JQuery диалог с гиф анимацией "Загрузка,,,". Но вот не задача, диалог так и не появляется, а если иду в пошаговом режиме, то появляется, но гиф-анимация не анимируется, при выполнении "жёсткого кода".
JavaScript
1
2
3
4
5
function onchangeproj(v){
    $('#dlgLoading').dialog('open');
    // здесь жёсткий-долгоиграющий код
    $('#dlgLoading').dialog('close');
}
Что можно сделать? Программируя под Delphi или С++ я бы сделал отдельный поток для этого кода. А что делать в JS?

Добавлено через 8 минут
Подозреваю, что $('#dlgLoading').dialog('open'); страбатывает не стразу(например через евент?), но в этот момент начинает уже исполнятся следующая строчка, которая блокирует все дальнейшие реакции диалога и когда диалог может реагировать, то оказывется он уже не нужен и закрывается так и не показавшись

Добавлено через 1 час 31 минуту
частично решил проблему. Теперь диалог успевает появится, но гиф-анимация в диалоге всё равно стоит колом:
JavaScript
1
2
3
4
5
6
7
function onchangeproj(v){
        $('#dlgLoading').dialog('open');
        SetTimeout( function(){
                // здесь жёсткий-долгоиграющий код
                $('#dlgLoading').dialog('close');
        }, 0 );
}
Не уже ли я один сложные скрипты пишу? Народ, пожалуйста отзовитесь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2011, 17:19
Ответы с готовыми решениями:

Фоновое выполнение операций
#include <stdio.h> #include <locale.h> #include <string> #include <conio.h> #include <windows.h> #include <iostream> using...

Фоновое выполнение скрипта
Здравствуйте! Столкнулся с такой задачей: Есть БД с некоторыми датами. Надо каждый день по этим датам проходиться и если дата совпала,...

Фоновое выполнение задач Backgroundworker
Добрый день, В моем приложении необходимо некоторые процессы запускать параллельно. Программа по DDE получает данные с другого...

4
55 / 55 / 8
Регистрация: 12.12.2010
Сообщений: 204
05.07.2011, 07:45
Разбивайте долгоиграющий код на логические кусочки и тоже через setInterval делайте.
А что за браузер вешает анимацию?
1
 Аватар для snake32
3515 / 1698 / 236
Регистрация: 26.02.2009
Сообщений: 8,511
Записей в блоге: 6
05.07.2011, 12:15  [ТС]
Цитата Сообщение от Сергей Ка Посмотреть сообщение
А что за браузер вешает анимацию?
проверял, в хроме и файерфоксе. Почему вешает мне известно - JS-код выполнятеся в одном потоке. Где-то читал что iframe понимается как отдельное окно со своей очередью. Так ли это? И как тогда должен выглядеть код?

Разбить у меня вряд ли получится, хотя....у меня там есть пару вложеных циклов может сделать как рекурсию
0
55 / 55 / 8
Регистрация: 12.12.2010
Сообщений: 204
05.07.2011, 17:01
Рекурсию не надо, надо статус задачи сохранять как-то, чтобы можно было возобновлять без проблем по прерыванию.
Вообще AJAX запросы например не вешают же браузер, хотя может они оптимизированы под фоновое выполнение.
0
 Аватар для Kdn
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
06.07.2011, 13:39
snake32,
частично решил проблему. Теперь диалог успевает появится, но гиф-анимация в диалоге всё равно стоит колом:
С гиф анимацией у тебя навряд ли что нибудь получится.
Создай клиентский контрол по типу индикатора загрузки. Т.е. чтобы он управлялся при помощи JS. Или поищи готовые решения.

Добавлено через 4 минуты
snake32, Вот тут (Matt Berseth Progress) расковыряй этот контрол. Он написан на MS AJAX. И думаю поймёшь принцип.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2011, 13:39
Помогаю со студенческими работами здесь

Как ускорить выполнение кода? (Получение цвета пикселя, сравнение и выполнение действия)
Всем привет. Нужна консультация экспертов) Программа такая. Есть пиксель на экране, в нем то появляется яркий цвет, то темный (лампочка...

Выполнение кода
На одном из сайтов прочитал, что в .NET программах невозможно выполнение кода в хипах и в стеке. Как в .NET происходит вызов методов и...

Выполнение кода
Как без командных строк компилировать java код? Слышал есть класс для компиляции java на лету.

Выполнение JS кода в С++
Нужно авторизоваться на сайте, но требуются куки, получаются они тут, как выполнить код, чтобы получить куки? ;eval(...

Выполнение кода по расписанию
Подскажите пожалуйста, как реализовать такие задержки, к примеру я хочу чтобы определенный метод вызывался спустя каждые 2 часа. Без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru