Показать сообщение отдельно
  #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.
Ответить с цитированием