powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ajaxs асинхронный пост запрос с ожиданием
8 сообщений из 8, страница 1 из 1
Ajaxs асинхронный пост запрос с ожиданием
    #38151709
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно аякс по сути не знаю( так что не судите строго.
тут сфорганил кодик на пост запрос.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function a_post(urls,dat){
 var retval
 retval="";
    $.ajax({ 
        type:'post',
        url: urls,
        data: dat,
		async: false,
        response:'text',
        success:function (data) {
       retval=data;	
        }});
 return retval;
 }



посути кодик корявый но свою функцию выполняет

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

как можно отловить завершение пост запроса?

то что я хочу выглядит примерно так


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function a_post(urls,dat){
 var retval
 retval="";
    $.ajax({ 
        type:'post',
        url: urls,
        data: dat,
	async: true,
        response:'text',
        success:function (data) {
       retval=data;	
        }});

< ТУТ сидим и ждем пока запрос пройдет>

 return retval;
 }
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151720
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если не делать async: true то Ваша проблема будет решена?
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151740
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,
дело в том что при синхронном запросе во время запроса визуальные эфекты страницы приостанавливаются.
хотелось бы в идеале чтобы во время посылки асинхронного запроса в процедуре производилось ожидание колбек функции. т.е. идет пост--->в процедура ждет выполнения колбек функции---> процедура завершается.

в программировании допустим на vb6 )) эту проблему я решал бональным циклом после пост запроса который крутил свою шарманку пока пост запрос полностью не выполнится)

но тут та так не поставишь)
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151751
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
surbanecдело в том что при синхронном запросе во время запроса визуальные эфекты страницы приостанавливаютсяа это разве не оноsurbanec
Код: java
1.
< ТУТ сидим и ждем пока запрос пройдет>

?
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151754
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
surbanecв программировании допустим на vb6 )) эту проблему я решал бональным циклом после пост запроса который крутил свою шарманку пока пост запрос полностью не выполнится)в том же потоке?
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151755
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
surbanecто что я хочу выглядит примерно так


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function a_post(urls,dat){
 var retval
 retval="";
    $.ajax({ 
        type:'post',
        url: urls,
        data: dat,
	async: true,
        response:'text',
        success:function (data) {
       retval=data;	
        }});

< ТУТ сидим и ждем пока запрос пройдет>

 return retval;
 }

разумеется, так не выйдет.
асинхронное нельзя превратить в синхронное, это фундаментальный момент.
помещай всю логику "после ответа" в success
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38151763
sergkarpenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пересмотрите логику работы скрипта, вместо ожидания просто пробрасывайте нужный калбек.

И success калбек объявлен устаревшим, вместо него рекомендуется использовать deferred который возвращает $.ajax, но там идея таже - нужно навешивать калбек на done.

Пример изменения логики скрипта - вешаем оверлей перед стартом аякс запроса, на .always оверлей убираем
...
Рейтинг: 0 / 0
Ajaxs асинхронный пост запрос с ожиданием
    #38152271
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
surbanec
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function a_post(urls,dat){
 var retval
 retval="";
    $.ajax({ 
        type:'post',
        url: urls,
        data: dat,
	async: true,
        response:'text',
        success:function (data) {
       retval=data;	
        }});

< ТУТ сидим и ждем пока запрос пройдет>

 return retval;
 }


как сказали ранее, с этим ничего не поделаешь, асинхронный, значит во всём. Не может ждать выполнения одного, но при этом выполнять другое (реагировать на события браузера). Но мне в своё время посоветовали на данном форуме приблизительно такую конструкцию:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function a_post(urls,dat, func){
    $.ajax({ 
        type:'post',
        url: urls,
        data: dat,
	async: true,
        response:'text',
        success:function (data) {
         func(data);	
        }
     });
 }


и тогда код вызова выглядит приблизительно так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function parse_server_text(){
    //код до запроса
    var rules = getRulesForParse();
    a_post(server_url, dat, function(response){
      //код после запроса
      $("#response_div").html(response); 
      $("#parsed_response_div").html(parseByRules(response, rules));
    });
}


То есть, при минимальных затратах на правки кода (просто обрамление кода в анонимную функцию), мы получаем асинхронную логику в линейном виде. То есть, замыкание в javascript позволяет нам использовать третий параметр (функцию) просто как продолжение текущей (так как в неё будут переданы все переменные и т.д.).
мне в своё время пригодилось, надеюсь и в данном случае поможет :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ajaxs асинхронный пост запрос с ожиданием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]