Ищете шаблон дизайна/чистый высокоуровневый подход для реализации этого
У меня есть пользовательский интерфейс, где я показываю список функций в раскрывающемся списке. Основываясь на выборе пользователя из выпадающего списка, я визуализирую эту функцию. При посадке я держу этот выпадающий список отключенным до тех пор, пока не получу некоторые данные от ajax-вызова.
Так вот это и есть поток -
* Пользователь попадает на страницу, выпадающий список для выбора функций отключен.
* Как только загрузка завершается, я посылаю ajax-вызов для получения данных.
* Как только эти данные получены, я включаю выпадающий список.
* Затем пользователь выбирает функцию из выпадающего списка.
* Эта функция визуализируется.
* В любой момент пользователь может выбрать любую функцию из выпадающего списка.
* Основываясь на некотором взаимодействии с пользователем, мне нужно будет снова запустить вызов ajax и отключить выпадающий список до тех пор, пока я снова не пересчитаю на стороне сервера, какие все функции будут показаны внутри выпадающего списка.
* Цикл продолжается.
Почему я жду данных, чтобы включить выпадающий список?
Потому что показываемый список объектов требует некоторых данных для визуализации. Эти данные принимаются с помощью ajax-вызова, который я запускаю после приземления. Данные-это карта, где ключ-это имя функции, а значение-это объект, который будет иметь необходимую информацию для визуализации соответствующего объекта. Поэтому я не хочу включать выпадающий список до тех пор, пока у меня не будут все данные для визуализации объектов.
Я пытался реализовать это, но это становится очень грязным.
Разбивка компонентов, которые я пытаюсь реализовать чистым способом -
* Храните соответствующие данные каждой функции, которые я получаю через ajax-вызов.
* При получении данных включите раскрывающийся список.
* Если требуется еще один вызов ajax, отключите выпадающий список.
* Когда пользователь выбирает 1 объект, выполните некоторую обработку соответствующих данных этого объекта и визуализируйте этот объект.
Что я уже пробовал:
Я думаю о шаблоне потока, где мое первое действие будет заключаться в получении данных от вызова ajax, а затем дальнейшие действия будут исходить из пользовательского интерфейса в зависимости от того, какую функцию пользователь попросил визуализировать. Такой подход тоже выглядит не очень хорошо.
Может ли быть какой-то более чистый подход/шаблон дизайна, которому я могу следовать в Javascript? Любые предложения будут высоко оценены