Re: jQuery ajax сложная конструкция
От: Blazkowicz Россия  
Дата: 25.12.12 15:11
Оценка:
Здравствуйте, Veroonya, Вы писали:

V>
V>function rndrTireModel(carId, shaft, shaftNum, wheel, side) {
V>     var result;
V>     $.ajax({
V>        url: "${createLink(controller: 'tireModel', action: 'resolveTireModel')}",
V>        type: 'Get',
V>        data: {car: carId, shaft: shaft, shaftNum: shaftNum, wheel: wheel, side: side},
V>        success: function(text) {
V>          result = text;
V>        }
V>     });
V>     alert (result); 
V>     return result;
V>}
V> });
V>

AJAX запрос запускается асинхронно текущей функции.
Поэтому у вас сначала отрабатывает
return result;
а потом
result = text;
alert останавливает выполнение функции ожидая действия пользователя. В этом случае AJAX запрос успевает завершится. Но если сервер будет долго думать, то можно успеть закрыть alert() до получение результата. Это никак не связано с выполнением предыдущего запроса.
Можно решить через параметр async:
http://stackoverflow.com/questions/755885/how-do-i-make-jquery-wait-for-an-ajax-call-to-finish-before-it-returns


И ещё JavaScript это не Java. Тема будет пересена в соответствующий форум.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.