Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2012, 19:15
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

http_request запросы по очереди
Подскажите, пожалуйста:

Делаю два запроса:
makePOSTRequest(url,par);
makePOSTRequest2(url,par);


И в первом пытаюсь прочитать ответ:
function alertContents() {

        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                result2 =       http_request.responseText;
                alert(result2);
} else {              
                alert('There was a problem with the request. Please try again in a few seconds.');
            }
        }
    }


В итоге result2 равен ответу от второго запроса.

Как сделать все правильно? По очереди?

Спасибо

Последний раз редактировалось nickgu, 20.04.2012 в 19:28.
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2012, 19:58
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

Еще интересная штука:
Если я добавлю alert:
function alertContents() {alert('zzz');

тогда он выполнит
alert(result2);

но все равно со значением второго ответа
А если без alert('zzz'), вообще, ничего не будет
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2012, 20:25
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

Сделал


function alertContents() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
              makerequest2(url,par);

Последний раз редактировалось nickgu, 20.04.2012 в 21:13.
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2012, 22:11
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

Только вот теперь любопытно как совершать по очереди(циклично) одни и те же запросы и получать по порядку ответы?
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2012, 23:28
Аватар для razerxxx
Аспирант
Отправить личное сообщение для razerxxx Посмотреть профиль Найти все сообщения от razerxxx
 
Регистрация: 05.10.2011
Сообщений: 85

в яваскрипт запросы выполняются асинхронно. Т.е кто первый выполнится тот и пошлет коллбэк. Впринципе можно сделать чтобы запросы выполнялись синхронно но делать так не рекомендуется. Как это делается на чистом js не знаю честно говоря - погугли javascript ajax sync.
Но как я уже сказал, лучше так не делать. Попробуй пересмотреть структуру своей программы.
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2012, 01:21
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

Вот, например, такое интересно:

for (var i = 0; i < 5; i++) {
  param = param + parameters[i];
  makerequest(url,param);
}


И вот чтобы это все было по очереди.
(Вопрос чисто теоретический, для расширения кругозора)
Ответить с цитированием
  #7 (permalink)  
Старый 21.04.2012, 01:33
Аватар для razerxxx
Аспирант
Отправить личное сообщение для razerxxx Посмотреть профиль Найти все сообщения от razerxxx
 
Регистрация: 05.10.2011
Сообщений: 85

for (var i = 0; i < 5; i++) {
    param = param + parameters[i];
    $.ajax({
        url: "some_path",
        async: false, // вот тут мы заставим запросы выполняться синхронно
        success: function() {
            console.log('очередной запрос выполнен');
        }
    })
}

на jquery это делается так. Как на чистом js не знаю, но думаю как-то подобно.
Ответить с цитированием
  #8 (permalink)  
Старый 21.04.2012, 01:58
Интересующийся
Отправить личное сообщение для nickgu Посмотреть профиль Найти все сообщения от nickgu
 
Регистрация: 20.04.2012
Сообщений: 13

Я уже придумал - через функцию:

var final = 0;

makeRequest(url);

function makeRequest_final()
{
if (final < 5) makeRequestXML(url);
   final +=1;	
}

function ContentsXML2() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
                           makeRequest_finall();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кроссдоменные запросы aze AJAX и COMET 1 27.01.2012 02:43
Анимация по очереди zebra741258963 jQuery 6 14.12.2011 08:21
IE/chrome асинхронные запросы zebra AJAX и COMET 1 23.10.2011 04:19
Как сделать, чтобы скрипты срабатывали по очереди? To_wave Общие вопросы Javascript 8 19.09.2010 09:36
Как создать iframe, и отправлять xmlhttp запросы с него? Atilla AJAX и COMET 12 23.03.2010 17:58