Аватар для snake32
3516 / 1699 / 236
Регистрация: 26.02.2009
Сообщений: 8,526
Записей в блоге: 6

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

04.07.2011, 17:19. Показов 2968. Ответов 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
3516 / 1699 / 236
Регистрация: 26.02.2009
Сообщений: 8,526
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru