Сведения о вопросе

Drake

21:06, 1st October, 2020

Теги

AJAX    

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

Просмотров: 286   Ответов: 2

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


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

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


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

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


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


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

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


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


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


Есть ли вариант понормальнее?



  Сведения об ответе

pumpa

02:53, 29th August, 2020

Делайте через callback… Если надо данные выше в функции поднимайте callback на уровень выше…

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

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

// действия до диалога…
dialog.showModal(params, function(result){
// действия после диалога…
});


  Сведения об ответе

LAST

01:29, 1st August, 2020

Если я верно понял, то возможно поможет просмотр реализации async = false в методе .ajax фреймворка jQuery.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться