Javascript.RU

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

Два запроса в одном событии
Добрый день!
прошу помочь разобраться, почему выполняется второй запрос, а первый нет… При этом первый выполняется без второго? (не знаю в чем проблема, поэтому публикую весь код... благо он небольшой)
vvar xmlHttp

function showLizo(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Браузер не поддерживает запросы HTTP")
return
}

//Первый запрос
{
var url="LizoOrg.asp"
url=url+"?q="+str+"&v=1"
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
xmlHttp.onreadystatechange=stateChanged1
}

//Второй запрос
{
var url="LizoOrg.asp"
url=url+"?q="+str+"&v=2"
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
xmlHttp.onreadystatechange=stateChanged2
}
}

function stateChanged1() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{	
document.getElementById("Podr").innerHTML=xmlHttp.responseText 
}
} 
function stateChanged2() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("Dolgn").innerHTML=xmlHttp.responseText 
} 
} 

function GetXmlHttpObject()
{ 
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}

Последний раз редактировалось Jery, 17.09.2019 в 18:51.
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2019, 09:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Jery
почему выполняется второй запрос, а первый нет
По каким критериям ты судишь о не выполнении и выполнении запросов?
Ответить с цитированием
  #3 (permalink)  
Старый 16.09.2019, 09:22
Новичок на форуме
Отправить личное сообщение для Jery Посмотреть профиль Найти все сообщения от Jery
 
Регистрация: 16.09.2019
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
По каким критериям ты судишь о не выполнении и выполнении запросов?
если ответ возвращается, значит "выполняется"...

такое впечатление, что ответ от первого запроса не успев вернуться, затирается вторым запросом.

Последний раз редактировалось Jery, 16.09.2019 в 09:36. Причина: дополнение
Ответить с цитированием
  #4 (permalink)  
Старый 16.09.2019, 10:22
Новичок на форуме
Отправить личное сообщение для Jery Посмотреть профиль Найти все сообщения от Jery
 
Регистрация: 16.09.2019
Сообщений: 3

решение вот такое (вроде работает), на мой взгляд не совсем красивое
var xmlHttp
var sstr

function showLizo(str)
{
sstr=str
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Браузер не поддерживает запросы HTTP")
return
}

//Первый запрос
{
var url="LizoOrg.asp"
url=url+"?q="+str+"&v=1"
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
xmlHttp.onreadystatechange=stateChanged1
}
}

//Второй запрос
function showLizo2(str)
{
var url="LizoOrg.asp"
url=url+"?q="+str+"&v=2"
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
xmlHttp.onreadystatechange=stateChanged2
}

function stateChanged1() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{	
document.getElementById("Podr").innerHTML=xmlHttp.responseText
showLizo2(sstr)
}
} 
function stateChanged2() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("Dolgn").innerHTML=xmlHttp.responseText 
} 
} 

function GetXmlHttpObject()
{ 
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}

Последний раз редактировалось Jery, 17.09.2019 в 18:48.
Ответить с цитированием
  #5 (permalink)  
Старый 16.09.2019, 10:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Jery,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #6 (permalink)  
Старый 16.09.2019, 12:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Jery
если ответ возвращается, значит "выполняется"...
Это уже не так...
Если ты получил ответ, это не только выполнился запрос... Но и еще получен ответ. Запрос может отправиться но ответ может и не прийти по какой либо причине.

Сообщение от Jery
такое впечатление, что ответ от первого запроса не успев вернуться, затирается вторым запросом
Делай две "запросные" переменные. Под каждый запрос свою...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Два события на одном объекте zzzzzz Элементы интерфейса 9 29.05.2013 13:41
два запроса одновременно posta Серверные языки и технологии 7 23.02.2012 17:16
Два вопроса по XMLHTTPRequest Pluto Общие вопросы Javascript 7 22.09.2010 22:43
отмена запроса HelpeR AJAX и COMET 5 16.02.2010 16:24
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03