Пожалуйста, помогите мне перестроить этот код Javascript. Существует большая форма для отправки запланированного сообщения (дата отправки, тип повторения, конец по дате/qauntity, система кредитов - необходимо учитывать общую стоимость запланированного плана отправки во время выполнения). Я пишу валидатор Javascript для этой формы.Считываемость вложенных функций обратного вызова AJAX
Существует алгоритм проверки 1) проверить, если отправить дату время не в прошлый момент 2) проверить, «конца по дате» полей времени больше, то первый посыла даты время 3) проверить общую стоимость плана по расписанию
(Там около 6 шагов, но я просто пишу здесь 3 из них - я думаю, что это будет достаточно, чтобы понять эту проблему)«Сохранить запланированный план» кнопка имеет яваскрипт слушатель на «щелчок» событие. Этот слушатель называет эту функцию:
ScheduledValidator.checkIfSendDateTimeIsNotInPast(params, form);
Вот это его заявление:
ScheduledValidator.checkIfSendDateTimeIsNotInPast = function (params, form) {
var conn = new Ext.data.Connection();
conn.request({
url: CONST.BASE_URL + 'url',
params: params,
callback: function (options, success, response) {
response = Ext.util.JSON.decode(response.responseText);
if (response.success == false) {
// display error messages
} else {
ScheduledValidator.checkIfEndDateIsGreaterThatSendDate(params, form);
}
}
});
}
Мы вложен запрос позже:
ScheduledValidator.checkIfEndDateIsGreaterThatSendDate = function (params, form) {
var conn = new Ext.data.Connection();
conn.request({
url: CONST.BASE_URL + 'url2',
params: params,
messageForm: form,
callback: function (options, success, response) {
response = Ext.util.JSON.decode(response.responseText);
if (response.success == false) {
// display error messages
} else {
ScheduledValidator.validateTotalCost(params, form);
}
}
});
}
и больше здесь один:
ScheduledValidator.validateTotalCost = function (params, form) {
...
Мне не нравится в t что подход с алгоритмом на первый взгляд довольно трудно понять. Возможно, это нехорошо, чтобы сделать много (около 6) вложенных запросов AJAX для проверки единственной формы? Возможно, он должен быть объединен с единственным запросом, и после этого мы будем выполнять все действия проверки на стороне сервера? Как мне реорганизовать этот код?