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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> несколько XMLHTTPRequest: вопрос по найденому коду 
:(
    Опции темы
Sniper
Дата 25.6.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нашёл код:
Код

function on_ready_state(req, onload) {
  if (req.readyState==4) {
    if (req.status==200 || req.status==0) {
      onload(req);
    } else {
      error(req);
    }
  }
}
function ajax(url,method,params,onload) {
  var req;
  if (window.XMLHttpRequest) {
    req=new XMLHttpRequest();
  } else if (typeof ActiveXObject != undefined) {
    req=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req) {
    try {
      if (onload) {
        req.onreadystatechange=function() { on_ready_state(req, onload) };
      }
      req.open(method,url,true);
      req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
      req.send(params);
    } catch (err) {
      error(req);
    }
  }
}
function error(req) {
  alert("\n\nreadyState:"+req.readyState
    +"\nstatus: "+req.status
    +"\nheaders: "+req.getAllResponseHeaders());
}

код, (нашёл тут где-то) делает так, чтобы можно было в одном скрипте использовать несколько ajax запросов.

Но так как он не мой, я не понимаю как он работает ;-)

Посему вопрос: почему onload(req); вызывается как функция? это ж переменная  smile

и ещё: я правильно понимаю (судя по коду) что переменная req после получения ответа автоматически уничтожается?


Это сообщение отредактировал(а) Sniper - 25.6.2008, 22:27


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Alternator
Дата 26.6.2008, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну, во-первых вам бы не помешало изучить самые основы языка
в JS функции являются объектами, как и все остальное.
в качестве параметра onload  в данную функцию передается именно функция. и вызывается этот параметр как функция
переменная req имеется исключительно в локальной области видимости, таким образом вне функции на не видна.
В общем случае применять данный код надо так
Код

url="http://somesite/page.php"//адрес зароса
method="GET"//можно также POST
params="param1=123&param2=qwer"//параметры GET или POST запроса
function onload(req)
    {
    //Здесь мы имеем доступ к объекту req, на момент успешного выполнения запроса. НАпример
    alert(req.responseText)
    
    }
ajax(url,method,params,onload)

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


 




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


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

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