Galera, seguinte. Estava tentando fazer aparecer uma imagem em quanto a requisição estiver rodando.
OK. Pesquisando verifiquei que é so colocar [color=blue]FALSE [/color]na requisição que ela passa a ser sinc. e ira aguardar.
OK.
Se eu utilizo a função em [color=blue]FALSE[/color], aparece a imagem de carregando, mas assim que a operação é concluida, o texto do ajax não aparece no local.
Se eu utilizo a função com [color=darkblue]TRUE[/color], a imagem não aparece mais, acredito que seja por que não existe mais a espera pelo processamento e ao final do codigo a imagem é oculta instantaneamente, porem o texto ajax aparece corretamente no local.
Se fosse um erro no codigo ajax, acredito que não funcionaria de nenhum dos dois jeitos, mas eu não entendo por que quando coloco em [color=darkblue]FALSE [/color]ele para de aparecer na pagina.
[color=red]Quando digo FALSE e TRUE me refiro a linha 22 do codigo abaixo. Navegador Mozilla[/color]
var idImagemCarregando;
var comboPing;
//Mostrar imagem gif (carregando)
function trocarVisibilidade(id){
idImagemCarregando = 'carregando' + id;
var div1 = document.getElementById(idImagemCarregando);
div1.style.display = 'block';
var div2 = document.getElementById('ping' + id);
div2.style.display = 'none';
}
function mandaPingAjax(combo, ip){
url="/jsp/rede/roteador/ping.jsp?ip="+ip;
comboPing = combo;
ajaxPing(url);
}
function ajaxPing(url){
req = null;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChangePing;
req.open("GET",url,true);
req.send(null);
var div1 = document.getElementById(idImagemCarregando);
div1.style.display = 'none';
var div2 = document.getElementById(comboPing);
div2.style.display = 'block';
// Procura por uma versão ActiveX (IE)
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChangePing;
req.open("GET",url,false);
req.send();
}
}
}
function processReqChangePing(){
//alert('teste');
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status ==200) {
// procura pela div id="pagina" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById(comboPing).innerHTML = req.responseText;
} else {
document.getElementById(comboPing).innerHTML = req.statusText;
}
}
}
eu chamo este codigo desta maneira:
onClick="trocarVisibilidade('<%= cont%>'), mandaPingAjax('ping<%= cont%>', '<%= IP%>')"
Pra testar, eu coloquei um [color=red]alert(‘teste’)[/color] na linha 39, em [color=blue]TRUE [/color]o alert é exibido na tela, em [color=darkblue]FALSE [/color]ele não é exibido
