@AntonEtalon

Модальные диалоговые окна через AJAX?

Суть проблемы:



Есть некая функция (20-ая по списку в call stack). Она вызывает модальное окно.

При переписке GUI на Web UI возник вопрос реализации модальности через AJAX.



Чтобы отдать окно браузеру, нужно завершить поток, в котором выполнялась функция запуска модального окна.

Чтобы завершить поток, нужно получить результаты диалогового окна. В этом и суть проблемы.



Два неудачных варианта решения:



1. Порезать все 20 функций на 2 части. Все, что до модального окна, и само окно отдается и отрабатывается в первом потоке.

Все что после — во втором. Резать функции на 2 приходится для того, чтобы можно было разделить «до» и «после».



2. Остановить поток, который дошел до модального окна. Создать второй поток, что отдает браузеру модальное окно. По возврату от модального окна — восстанавливать первый поток.



Первый вариант ламает принципы ООП, трудоемок. Второй вариант — сложен в реализации, требует низкоуровневый работы и вмешательства в уже существующие модули.



Есть ли вариант понормальнее?
  • Вопрос задан
  • 3494 просмотра
Пригласить эксперта
Ответы на вопрос 2
aavezel
@aavezel
Веб девелопер
Делайте через callback… Если надо данные выше в функции поднимайте callback на уровень выше…

было с проблемой:
// действия до диалога…
var result = dialog.showModal(params);
// действия после диалога…

стало с проблемой:

// действия до диалога…
dialog.showModal(params, function(result){
// действия после диалога…
});
Ответ написан
Если я верно понял, то возможно поможет просмотр реализации async = false в методе .ajax фреймворка jQuery.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы