Javascript.RU

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

Использование нескольких объектов запроса
Хотелось бы узнать, можно ли использовать сразу несколько запросов независимых друг от друга для общения, так сказать, сервера с браузером? Прочтя книгу Бретта Маклафлина "Изучаем AJAX" мною было понято следующее: несколько запросов можно создать! Автор это делает следующим образом:
function createRequest() {
  var request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
	  request = new ActiveXObject("Msxm12.XMLHTTP");
	} catch (othermicrosoft) {
	  try {
	    request = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (failed) {
	    request = null;
	  }
	}
  }
  if (request == null) {
    alert("Error creating request object!");
  } else {
    return request;
  }
}

var req1 = createRequest();
var req2 = createRequest();
// и т.д.

Теперь можно создавать несколько запросов, но! При вызове браузером обратной функции должен проверяться статус того или иного запроса, прально? Да! В книге эти запросы фиксированы, то есть мы знаем что у нас есть такой запрос (req1) и такой запрос (req2). C помощью функции if-else можно легко определить и статус и всё остальное что касается этого запроса. Да даже что там определять, ведь то что стоит проверить задаём мы. Вот что я имею в виду:
if (req1.readyState == 4) {
   if (req1.status == 200) {
...
...
   }
else if  (req2.readyState == 4) {
   if (req2.status == 200) {
...
...
   }

как создать запрос различающийся от предыдущего понятно. Для этого можно передать в функцию createRequest() например id запроса. А вот как разобраться с обратным ответом сервера? Как узнать на какой запрос ответил сервер если этих запросов может быть сколько угодно?

Буду очень признателен если кто-нить поможет разобраться в этой хитрой штукенции!

Последний раз редактировалось Димонка, 13.07.2010 в 01:18.
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2010, 01:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Димонка
А вот как разобраться с обратным ответом сервера? Как узнать на какой запрос ответил сервер если этих запросов может быть сколько угодно?
если вы назначаете запросам одинаковую функцию, то значит вы их хотите обрабатывать одинаково. верно же?
если вы хотите два запроса обрабатывать по разному, то почему не повесите им разные функции?
для всех исключений(коих в голову сразу мне не приходит), заводите массив XHR-объектов, и используйте замыкания
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2010, 12:04
Новичок на форуме
Отправить личное сообщение для Димонка Посмотреть профиль Найти все сообщения от Димонка
 
Регистрация: 13.07.2010
Сообщений: 9

Прочёл только что статейку на этом сайте http://javascript.ru/tutorial/events...chered-sobytiy. Эт получается, если я, например, буду использовать стандартную модель запроса (с созданием только одного объекта запроса) и стану отправлять через этот объект поочередно, ну скажем, 4 запроса, то 1,2,3 сделаные мною запросы ранее не потеряются? Т.е. я так понимаю браузер сам выстроит эти запросы и будит их отправлять поочерёдно, пока не будет выполнен предыдущий. Это как синхронный запрос, только браузер не подвисает! Браузер кэширует те действия пользователя, которые были произведены. я так понял? Например я отправляю 2запрос и тут же 3 и 4. Как поступит в этой ситуации браузер? браузер кэширует 3 и 4 запросы, а при получении ответа тут же отправляет серверу 3 запрос и т.д.
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2010, 13:31
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

http://xmlhttprequest.ru/
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2010, 23:40
Новичок на форуме
Отправить личное сообщение для Димонка Посмотреть профиль Найти все сообщения от Димонка
 
Регистрация: 13.07.2010
Сообщений: 9

Спасибо всем! после прочтения статьи http://xmlhttprequest.ru всё стало понятно!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
отмена запроса HelpeR AJAX и COMET 5 16.02.2010 16:24
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28
как сбросить видимость нескольких объектов сразу legal Общие вопросы Javascript 23 25.03.2009 22:33