Пишу веб-приложение на JSP с использованием ajax. Хочется сделать так, чтобы при подгрузки изображения появлялся индикатор загрузки (не прогресс бар, а просто какой-нибудь gif-файл, символизирующий о том, что идет загрузка).
Здравствуйте, c-smile, Вы писали: CS>Единственный вариант того что там может быть это *синхронный* ajax request но CS>как я понимаю у тебя там чего-то другое. Что именно?
Скорее всего Вы правы. Вот полный код:
var httpRequest = false;
var objID;
function makeRequest(url)
{
document.getElementById("big_img").style.display = "none";
document.getElementById("indicator").style.display = "inline";
httpRequest = false;
if (window.XMLHttpRequest)
{ // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType)
{
httpRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{ // IE
try
{
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
if (!httpRequest)
{
alert('Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = loadPicture;
httpRequest.open('GET', url, true);
httpRequest.send(null);
document.getElementById("indicator").style.display = "none";
document.getElementById("big_img").style.display = "inline";
}
function loadPicture()
{
var xml = httpRequest.responseXML;
var elems = xml.getElementsByTagName('ROW');
for (var i = 0; i < elems.length; i++)
{
var elem = elems.item(i);
var elemID = elem.getElementsByTagName('ID')[0];
if (elemID.text == objID)
{
document.getElementById("PictField").src = elem.getElementsByTagName('PICT')[0].text;
break;
}
}
}
Суть такая — есть картинка и кнопка. Нажимаю на кнопку подгружается новая картинка.
sendoff wrote:
> Так вообще индикатора нет. Блин, голову уже сломал...
А куда он делся? Ты чего наменял? Я предложил переставить код для скрытия индикатора в событие по приходу ответа.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Функция changeStyles(); не вызывается. То есть по окончании загрузки индикатор остается. Видимо где-то в другом месте надо вставлять стручку с onload. Не могу понять, где..
а почему тогда big_img прячем! это я так понимаю контейнер
S>Функция changeStyles(); не вызывается. То есть по окончании загрузки индикатор остается. Видимо где-то в другом месте надо вставлять стручку с onload. Не могу понять, где..