Jump to content


BierMann

Member Since 06/09/2009
Offline Last Active 08/04/2010, 08:07
-----

Topics I've Started

Ajax - Multi Request Call

17/01/2010, 19:59

Bom, pesquisei e tentei desenvolver hoje o dia inteiro mas não fui bem sucedido.
(pesquisei tanto no forum que ele ficava mandando eu esperar meio minuto por causa de flood nas pesquisas)

Alguém já implementou multiplas requisições em uma página?

Eu não consegui fazer funcionar.

Fiz da seguinte maneira:
function alimentaDiv(id, url, dados)
{
    var http = getHTTPObject();
    http.open("POST", url+dados, true);
    http.onreadystatechange = function (){
    if (http.readyState == 4) {
          document.getElementById(id).innerHTML =  http.responseText;
      }
      else{
          document.getElementById(id).innerHTML = "<img border=none src=\"img/load.gif\" /></br></br>";
      }
    };
    http.send(null);
}

function alimentaDiv2(id, url, dados)
{
    var http2 = getHTTPObject();
    http2.open("POST", url+dados, true);
    http2.onreadystatechange = function (){
    if (http2.readyState == 4) {
          document.getElementById(id).innerHTML =  http2.responseText;
      }
      else{
          document.getElementById(id).innerHTML = "<img border=none src=\"img/load.gif\" /></br></br>";
      }
    };
    http2.send(null);
}


function getHTTPObject(){
        if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
        else if (window.XMLHttpRequest)return new XMLHttpRequest();
        else {alert("Seu navegador não suporta AJAX. Instale uma versão mais atualizada.");return null;}}

alimentaDiv é chamado no onLoad do body.
alimentaDiv2 é chamado para alimentar uma subdiv, através de um click, dentro da div principal carregada pela alimentaDiv.

O que acontece:
alimentaDiv funciona perfeitamente, assim como a alimentaDiv2.

Dããã, mas então qual o problema?
Quando alimentaDiv2 é finalizada, por algum motivo a alimentaDiv é rechamada, anulando o que a alimentaDiv2 fez.

Fiz alguns testes e descobri que até depois do
"http.send(null)"
da alimentaDiv2, ela funciona perfeitamente, ou seja, carrega o conteúdo na div secundária.
O problema está além desta função...

Alguma solução sugerida?

Att.,
Felipe

IPB Skin By Virteq