Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX, последовательныи вызов 
:(
    Опции темы
Reptor
Дата 9.3.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Вот есть 2 такие функции
Код


function makePOSTRequest(url, parameters) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        //alert('Cannot create XMLHTTP instance');
        //return false;
    }
    
    http_request.onreadystatechange = processedStatus;
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
}


function processedStatus() {
   if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var result = http_request.responseText;
            var jsonObject = eval('(' + result + ')');
            //alert(jsonObject.status);
            if(jsonObject.status == "ok") {
                
            } else if (jsonObject.status == "version"){
            
            } else {
             
            }
        }
    }
}

    
и 2 вызова 
   
    
Код

makePOSTRequest('versiobn, '{'+JSONData+'}');
makePOSTRequest('status-info', '{'+JSONData+'}'); 



так вот проблема в том что есть конфликт... 1-и вызов не видно.. в условие jsonObject.status == "version" не попадаю...

если сделать sleep после 1-ого вызова то всё ок... попадаю

как их сделать независимыми.. или какими там??



Это сообщение отредактировал(а) Reptor - 9.3.2010, 16:10
PM MAIL ICQ   Вверх
ksnk
Дата 9.3.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Копай в сторону синхронного запроса. пользы проекту это, imho, не принесет, но понимания возможностей - прибавит ;)
польза будет , если возникнет пониманиe callback - взаимодействия этих запросов.

P.S. результат выполнения кода предсказуем ;) Первый вызов функции заводит глобальную переменную с именем http_request, второй вызов функции эту переменную преопределяет, с присущим Javascript'у вызовом дескрукторов системных объектов... 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Reptor
Дата 9.3.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



ksnk, а если сделать ее локальнои?
PM MAIL ICQ   Вверх
ksnk
Дата 9.3.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



придется еще замыкать функцию processedStatus, чтобы она смогла увидеть эту локальную переменную... А так - должно помочь...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
IDVsbruck
Дата 10.3.2010, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Сделать функцию-координатор, которая будет как отправлять запросы, получать ответы, вызывать коллбеки и оперировать необходимыми переменными. Это несложно, особенно если использовать фреймворки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.