Як зробити послідовне виконання в даному випадку

Пізніше виявилося, що вона досить зручна завдяки самій ідеї, коли всі необхідні дії пишуться в одному атрибуті, який наприклад вішається на подія кліка на елемент з цим атрибутом. Наприклад якщо я хочу зробити ajax-запит до певного URL і отриману відповідь вставити в певний елемент то набір команд в цьому атрибуті виглядає так: "ajax = / ajax / url; html = # Container;"

Мені сподобалася ця ідея, тому що це швидко і мало коду. Не потрібно замислюватися про повторне прив'язуванні оброблювачів.

Далі я почав допрацьовувати цю оболонку і функціонал виріс. Наприклад тепер можна збирати дані з форм і елементів, викликати модальне вікно, автоматично з'являється прелоадер, можна відправляти дані в консоль, перезавантажувати сторінку з тимчасовою затримкою, забирати get-параметри і т.д. і т.п.

Але на цьому мої пізнання в JS закінчилися. а мені хотілося б реалізувати наступне:
наприклад зараз можна написати "ajax = / ajax / url; html = # Container; -> run = alert ( 'я знову позачергово')" символ -> розділяє набір команд на два етапи, тобто з початку повинно виконатися ajax = / ajax / url; html = # Container; а потім run = alert ( 'я знову позачергово') в коді це реалізовано природно незграбно і виконується асинхронно:

Ось тут, на початку відсікається перша частина набору команд:


А ось тут в кінці функція рекурсірует запускаючи сама себе

Як це можна реалізувати?

В тому-то й справа, що починати потрібно нормально. В даному випадку - з вивчення JS і існуючих фреймворків. Для Laravel, наприклад, це Vue.
Ваша виріб має дуже-дуже низька стеля функціональності і ті, хто будуть нею користуватися, увіткнути в нього точно так же, як ви прямо зараз. Неможливо складну нестандартну логіку описати в одному атрибуті так, щоб цим можна було ефективно користуватися. А найголовніше - абсолютно не потрібно цього робити.

Олексій Уколов. Vue, Angular і т.д. безперечно круті, але на мій погляд занадто круті для простих функцій, типу зібрати дані з форми, особливо якщо ця форма не з поля input а зі звичайної таблиці де не прописано жодних атрибутів. Тобто Зараз я можу це увіткнути в будь-який проект, і у мене за хвилину з'явиться потрібний функціонал, пов'язаний з роботою ajax
Наприклад: shkola-magia.ru/faq
Код на кнопці "Задати питання" ion = "ajax = / feedback / modal; modal = # ModalWin;"
Код на кнопці відправити: ion = "data = .feedback; ajax = / feedback / send; prepend = # SystemMessages;"
Код на Кнопа "оновити капчу": ajax = / feedback / captchareload; html = # Captcha;

Схожі статті