Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Возврат после обработки ответа POST


Автор: kuksha 5.1.2012, 00:47
Есть функция Main, в середине которой производится запрос к серверу командой post. Ответ обрабатывается функцией Obrabotka, после отработки которой возврат в функцию Main не производится. А надо вернуться и продолжить её работу, выполнить " alert(Привет); "
Код

function Obrabotka()
{ 
...
}

function Main
{  
   $.post(
     "http://...test1.php",
     {
    parametr1: "123"
     },
     Obrabotka
   );
   alert(Привет);
}

Как это сделать?

Автор: нуп 5.1.2012, 01:52
Вынести из функции Main всё что идёт ниже запроса в другую функцию, и вызвать её после Obrabotka. Или вместо $.post использовать $.ajax с параметром async: false ( браузер будет висеть пока не прийдет ответ от сервера)  smile  

Автор: kuksha 5.1.2012, 09:32
Цитата(нуп @  5.1.2012,  01:52 Найти цитируемый пост)
и вызвать её после Obrabotka

В смысле вызвать её в конце функции Obrabotka? 
Некрасиво... особенно если учесть, что у меня в Main несколько запросов POST подряд нужны - это такое нагромождение выйдет...
С яксовыми библиотеками я не работал - для этого много переделывать наверное надо, включая формат данных выдаваемых  сервером?..
По-другому никак?

Автор: нуп 5.1.2012, 15:13
Та как напишите так и будет, я лишь предложил варианты.

Автор: ksnk 5.1.2012, 15:27
Код

function Obrabotka(callback)
{ 
...
  callback.call(this);
}
function Main
{  
   $.post(
     "http://...test1.php",
     {
    parametr1: "123"
     },
     Obrabotka(function(){
         alert(Привет);
     })
   );
  
}

Автор: kuksha 8.1.2012, 17:01
О, спасибо.
Я правда уже сделал паровоз, вызывающий функции из функций, но так тоже попробовать надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)