Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nessa_uepa

XMLHTTP Request

Recommended Posts

POVO!!

EH O SEGUINTE...

EU QUERO FAZER UMA NOVA REQUISIÇÃO ASSIM Q A REQUISIÇÃO ATUAL ESTIVER EFETIVADA...APÓS O SERVIDOR RETORNAR O CONTEÚDO, MAS NÃO TÁ FUNFANU...

AH...AXU Q NINGUEM ENTENDEU NADA POR ESSA MINHA EXPLICAÇÃO...

VO POSTAR O CODIGO:

 

var obj;var id;var funcao;<!--------------------------------------------------------------------------------------->// Funcoes do xmlhttprequest<!--------------------------------------------------------------------------------------->function CreateObjXMLHttpRequest() // Cria o objeto{obj = null;// Procura por um objeto nativo W3C (Mozilla/Safari/Konqueror/Opera)if (window.XMLHttpRequest){obj = new XMLHttpRequest(); // Cria o objeto nativo}else if (window.ActiveXObject) // Senao procura por uma versao ActiveX (IE){try // Tenta criar objeto activeX Msxml2.XMLHTTP.4.0{obj = new ActiveXObject("Msxml2.XMLHTTP.4.0");}catch(e){try // Tenta criar objeto activeX Msxml2.XMLHTTP.3.0{obj = new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(e){try //Tenta criar objeto activeX Msxml2.XMLHTTP{obj = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try // Senao tenta criar obejeto activeX Microsoft.XMLHTTP{obj = new ActiveXObject("Microsoft.XMLHTTP");}catch(e) // O navegador nao tem suporte{obj = false;}}}}}return obj;}function Requisition(obj,var_id,arquivo,var_funcao){funcao = var_funcao;id = var_id;obj.open('GET', arquivo, true) // Metodo prepara objeto pra requisicaoobj.onreadystatechange = GetContent; // Define a funcao chamada na mudanca de status do objetoobj.send(null); // Envia requisicao}function GetContent(){if(obj) // Verifica se objeto ainda existe{if(obj.readyState == 4) // Se requisicao terminada (readyState = 4){ alert(funcao);if(obj.status == 200) // Se status retornado "ok" (status = 200){eval(funcao+'();');}else // Se status diferente de "ok"{alert('Erro! "'+ obj.statusText +'" (erro '+ obj.status +')'); //Exibe mensagem com o erro}}}else{return false;}}<!--------------------------------------------------------------------------------------->// Funcoes do usuario<!--------------------------------------------------------------------------------------->function atualiza_conteudo(){alert('atualiza+'+id);document.getElementById(id).innerHTML = obj.responseText;}function busca_atualizacao(){data_ant = document.getElementById(id).value;data = obj.responseText;if(data_ant != data) // Atualiza valores de data de modificacao{alert('diferente');Requisition(obj,'atualiza','atualiza.php','atualiza_conteudo');}}<!--------------------------------------------------------------------------------------->// Chamadas as funcoes<!--------------------------------------------------------------------------------------->var obj = CreateObjXMLHttpRequest(); // Cria uma instancia do objeto// Verifica se o browser suporta as funcoes a serem usadasif(obj && document.getElementById && document.createElement){// Chama requisicao a cada 1000 milissegundossetInterval("Requisition(obj,'ultima_atualizacao','ultima_atualizacao.php','busca_atualizacao');", 8000);}else{alert('Funcoes de javascript nao suportadas por este browser');}

 

------------------------------

 

fim

 

a parte q importa eh essa função

 

function busca_atualizacao(){data_ant = document.getElementById(id).value;data = obj.responseText;if(data_ant != data) // Atualiza valores de data de modificacao{alert('diferente');Requisition(obj,'atualiza','atualiza.php','atualiza_conteudo');}
o q acontece eh q ao chamar uma nova requisição ae, passando os parâmetros certos, não vai!!!

o obj.readyState nunca fika com valor 4 e naum entra no resto da função GetContent()

 

se alguem tiver alguma idéia do q possa ser

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo...eu tenhu uma variavel chamada funcao...q guarda o nome da funcao...tipo var funcao = carrega_dados;dae eu kero chamar a funcao correspondente ao valor da variavel funcao...dae uso esse eval... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.