Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2010, 17:12
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Ajax два запроса
Подскажите, пожалуйста, вот надо загрузить два разных документа или ингогда даже 3 и более, если вызывать
так (сама функция ниже)
load('1.html','work1');
load('2.html','work2');
load('3.html','work3');

то, в элемент work2 записаться 1.html ну тому подобное, что посоветуете?
вот сама функция
function load(what,where)
{ 


if(window.ActiveXObject)
{
  try
  {
   xml=new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e)
  {
  xml=false;
  }
}
else
{
  try
  {
  xml=new XMLHttpRequest();
  }
  catch (e)
  {
  xml=false;
  }
}

if(!xml) alert("Error creating the XMLHttpRequest object");

 
  xml.onreadystatechange = function()
		{ 
	                if(xml.readyState != 4 || xml.readyState==0)
			    {
                        document.getElementById(where).innerHTML=" <img src='/img/pb.gif'> ";	
                      }
			if(xml.readyState == 4)
			{
				if(xml.status == 200)
				{
					document.getElementById(where).innerHTML=xml.responseText;
				}	
				else	
				{
					document.getElementById(where).innerHTML="Error: returned status code " + xml.status + " " + xml.statusText;
				}	
			} 
		}; 
   xml.open("GET", what, true); 
   xml.send(null);

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

function load(what,where)
{ 
 
 
if(window.ActiveXObject)
{
  try
  {
   xml=new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e)
  {
  xml=false;
  }
}
else
{
  try
  {
  xml=new XMLHttpRequest();
  }
  catch (e)
  {
  xml=false;
  }
}
 
if(!xml) alert("Error creating the XMLHttpRequest object");
 
 (function(){
var _where=where;
  xml.onreadystatechange = function()
        { 
                    if(xml.readyState != 4 || xml.readyState==0)
                {
                        document.getElementById(_where).innerHTML=" <img src='/img/pb.gif'> ";    
                      }
            if(xml.readyState == 4)
            {
                if(xml.status == 200)
                {
                    document.getElementById(_where).innerHTML=xml.responseText;
                }    
                else    
                {
                    document.getElementById(_where).innerHTML="Error: returned status code " + xml.status + " " + xml.statusText;
                }    
            } 
        }; 
})();
   xml.open("GET", what, true); 
   xml.send(null);
 
}

http://javascript.ru/basic/closure
Ответить с цитированием
  #3 (permalink)  
Старый 06.01.2010, 21:12
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Всё равно тоже самое...
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2010, 18:37
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

<script type="text/javascript">
function load(url, container) { 
	var xhr = typeof XMLHttpRequest == "undefined" ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest;
	xhr.open("GET", url, true);
	xhr.send(null);
	container.innerHTML = ' <img src="http://javascript.ru/forum/images/ca_serenity/misc/progress.gif" alt="loading…" /> ';
	(function () {
		if (xhr.readyState == 4) {
			if(xhr.status == 200) {
				container.innerHTML = xhr.responseText;
			}
			else {
				container.innerHTML = "Error: returned status code " + xhr.status + " " + xhr.statusText;
			}
		}
		else {
			setTimeout(arguments.callee, 20);
		}
	}());
}

function doIt() {
	load("http://javascript.ru/forum/clientscript/vbulletin_editor.css?p=" + Math.random(), document.getElementById("work1"));
	load("http://javascript.ru/modules/codeviewer/codeviewer.css?p=" + Math.random(), document.getElementById("work2"));
	load("http://javascript.ru/forum/images/ca_serenity/misc/scripts.js?p=" + Math.random(), document.getElementById("work3"));
}
</script>

<div id="work1" style="background: #fcc;">1</div>
<div id="work2" style="background: #cfc;">2</div>
<div id="work3" style="background: #ccf;">3</div>
<button onclick="doIt()">Загрузить</button>

Последний раз редактировалось Octane, 07.01.2010 в 19:04.
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2010, 18:56
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Да этот вариант работает, спасибо ....
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2010, 23:16
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Щас свою функцию исправил и теперь и она работает, похоже надо было добавить в код вот только это
var xml;


а сама функция теперь выглядит вот так
function load(what,where)
{ 
var xml; 
 
if(window.ActiveXObject)
{
  try
  {
   xml=new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e)
  {
  xml=false;
  }
}
else
{
  try
  {
  xml=new XMLHttpRequest();
  }
  catch (e)
  {
  xml=false;
  }
}
 
if(!xml) alert("Error creating the XMLHttpRequest object");
 
 (function(){
var _where=where;
  xml.onreadystatechange = function()
        { 
                    if(xml.readyState != 4 || xml.readyState==0)
                {
                        document.getElementById(_where).innerHTML=" <img src='/img/pb.gif'> ";    
                      }
            if(xml.readyState == 4)
            {
                if(xml.status == 200)
                {
                    document.getElementById(_where).innerHTML=xml.responseText;
                }    
                else    
                {
                    document.getElementById(_where).innerHTML="Error: returned status code " + xml.status + " " + xml.statusText;
                }    
            } 
        }; 
})();
   xml.open("GET", what, true); 
   xml.send(null);
 
}
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2010, 23:49
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Opera до версии 7.5 (2003 год, когда IE6 уже давно существовал и поддерживал AJAX!) не поддерживала XMLHttpRequest, но ее больше никто уже не использует, поэтому такая громоздкая штука с try-catch практически бесполезна, даже мобильные браузеры, например Opera Mobile 8.65 (2006 год) поддерживают XMLHttpRequst, а те, что не поддерживают, врядли запустят скрипт без других дополнительных оптимизаций.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery ajax отправка запроса в htpps vova_b jQuery 19 07.03.2013 18:20
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03
Проблема с AJAX запросом + mod_rewrite BrokenEye AJAX и COMET 1 12.07.2009 02:08
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12