powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX и синхронизация
11 сообщений из 11, страница 1 из 1
AJAX и синхронизация
    #35635948
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
function test()
{
check_captcha_ajax();
// здесь нужно ждать окончания  check_captcha_ajax()
alert('слишком рано!')

}

function reportSuccess(request) {
  	 alert ('я должен быть первый');
}

function check_captcha_ajax(){
       var url    = 'ajax/checkc.php';
       var params = 'k=' + $F('k');
       var ajax   = new Ajax.Request(url, 
                                       {method: 'post',
                                        parameters: params,
                                        onSuccess:reportSuccess,
                                        onFailure: reportError}
                                     );
 }



как мне организовать функцию
что бы дельнейшее ёе выполнение было только после заверщения
ajax
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35636061
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объекта Ajax.Request в javascript. Значит, ты или юзаешь внешний фреймворк или есть функция, создающая этот объект (Ajax). Поэтому надо либо показать нам свой код, либо хотя бы сказать, с применение чего сделан данный асинхронный вызов.

А во-вторых, разве функция reportSuccess не выполняется после выполнения запроса? Чего, в общем-то, надо?
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35636107
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Наверняка, есть какой-то параметр, который говорит синхронно, или асинхронно. Может лучше голый XmlHttpRequest заюзать? Там такое - точно есть.
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35638600
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckОбъекта Ajax.Request в javascript. Значит, ты или юзаешь внешний фреймворк или есть функция, создающая этот объект (Ajax). Поэтому надо либо показать нам свой код, либо хотя бы сказать, с применение чего сделан данный асинхронный вызов.

А во-вторых, разве функция reportSuccess не выполняется после выполнения запроса? Чего, в общем-то, надо?


я юзаю prototype

reportSuccess выполняется но

alert('слишком рано!') появляется раньще

чем alert ('я должен быть первый');
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35638677
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно! А ты как хотел??? Javascript однопотоковый. Кстати, в этом и состоит прелесть А синхронной передачи/запросов.
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35638695
mrJust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuriyB alert('слишком рано!') появляется раньще
Еще бы)

А происходит это из-за того, что Ваша функция "check_captcha_ajax()" делает асинхронный запрос на сервер (ключевое слово асинхронный). Функция check_captcha_ajax() завершается и передает управление назад в test(), там выполняется alert('слишком рано!').
Когда с сервера приходит ответ, вызывается reportSuccess().
YuriyBкак мне организовать функцию
что бы дельнейшее ёе выполнение было только после заверщения
ajax
Поместите то, что нужно выполнять в reportSuccess(){} - это правильный вариант. Или выполняйте синхронные запросы вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
new Ajax.Request(url, 
                                       {method: 'post',
                                        asynchronous: true,
                                        parameters: params,
                                        onSuccess:reportSuccess,
                                        onFailure: reportError}
                                     );
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35639542
mrJust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упс, опечатался, для синхронных запросов должно быть так (судя по мануалу)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
new Ajax.Request(url, 
                                       {method: 'post',
                                        asynchronous: false,
                                        parameters: params,
                                        onSuccess:reportSuccess,
                                        onFailure: reportError}
                                     );
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35641712
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrJustYuriyB alert('слишком рано!') появляется раньще
Еще бы)

А происходит это из-за того, что Ваша функция "check_captcha_ajax()" делает асинхронный запрос на сервер (ключевое слово асинхронный). Функция check_captcha_ajax() завершается и передает управление назад в test(), там выполняется alert('слишком рано!').
Когда с сервера приходит ответ, вызывается reportSuccess().
YuriyBкак мне организовать функцию
что бы дельнейшее ёе выполнение было только после заверщения
ajax
Поместите то, что нужно выполнять в reportSuccess(){} - это правильный вариант. Или выполняйте синхронные запросы вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
new Ajax.Request(url, 
                                       {method: 'post',
                                        asynchronous: true,
                                        parameters: params,
                                        onSuccess:reportSuccess,
                                        onFailure: reportError}
                                     );


спасибо , я так и сделал с reportSuccess().
надо будет как нибудь и с asynchronous: false попробовать ;-)
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35641817
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо ... на время передачи-получения такого запроса браузер просто подвисает.
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35642237
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если б внимательно читали документацию, то знали бы что есть колбэк onComplete - он выполняется после всех onSuccess/onFailure

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
AJAX и синхронизация
    #35642239
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использовать XHR в синхронном режиме является плохим стилем и плохо отражается на юзабилити

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


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