Ir para conteúdo

POWERED BY:

Arquivado

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

Kabbalista

[Resolvido] DIV recarregada por Ajax

Recommended Posts

Bem, meu conhecimento de Ajax é podre, então espero que possam me ajudar. Eu tenho um código PHP (que como todos sabem não pode ser deixado executando indefinidamente em loop em host partilhado) que captura através de uma função um determinado dado. Eu preciso expor este dado em uma div na página, de forma que, recarregando o script PHP, ela exiba o atual valor que a função retornou. Ou seja, preciso que um código Ajax (uso JQuery mas outros frameworks podem ser usados) fique carregando a página PHP, capturando os dados e expondo na div de tempos em tempos.

 

Alguém tem uma idéia que possa ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

melhor você não fazer dessa forma.

 

seria um setInterval() para disparar o ajax a cada x segundos.

 

porém isso é ruim, pois fará várias requisições desnecessárias.

 

 

pesquise sobre Comet / ServerPush

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, poderia dar-me um exemplo em código, principalmente sobre como atualizar a div?

 

Bem, eu estou pegando (ou melhor, tentando) o conteúdo de uma página com ajax para jogá-lo em uma div que deverá ser recarregada a cada dois segundos (não estou me importando aqui com tráfego e tudo mais). Vocês poderiam dizer o que há de errado no código?

 

setInterval(function(){
function GetXMLHttp() {

	var xmlHttp;
	try {
	xmlHttp = new XMLHttpRequest();
	}
	catch(ee) {
	try {
	xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
	try {
	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(e) {
	xmlHttp = false;
	}
	}
	}
	return xmlHttp;
}

var xmlRequest = GetXMLHttp();

function abrirPag(){
	var url = 'sc_now_playing.php';

xmlRequest.open("GET",url,true);
	xmlRequest.onreadystatechange = mudancaEstado;
	xmlRequest.send(null);

	if (xmlRequest.readyState == 4) {
	document.getElementById("tocando").innerHTML = xmlRequest.responseText;
	}

	return url;
}
}, 2000);

 

A página PHP expõe somente o nome de uma música que estou pegando por socket de um servidor Shoutcast cheio de frescuras. Ele me traz UMA LINHA de texto puro, cada vez que é executado. O que há de errado com este código que não consigo fazer o ajax carregar a página a cada dois segundos e exibir na div o conteúdo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize Jquery, assim fica tudo mais simples: Para ler uma página de 2 em 2 segundos você pode usar apenas o seguinte código:

 

(AQUI você PRECISA ADICIONAR OS ARQUIVOS DA BIBLIOTECA DO JQUERY)

 

<script>

 

$(carrega);

function carrega() {

$('#tocando').load('sc_now_playing.php', recarrega)

}

 

function recarrega() {

setTimeout(carrega, 2000);

}

 

</script>

 

 

Pronto, bem mais simples...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, eu consegui ajeitar aquele código depois de ver a m***** que eu postei e estudar um pouco. Mais tarde eu posto o código. It is working like a charm. Ah! Obrigado por contribuir. Vou implementar os dois métodos! Preciso agora apenas resolver o problema da acentuação! O melhor é que eu aprendi a implementar o método. Javascript nunca foi o meu forte. Prefiro rodar do lado do servidor... Vou tentar implementar comet, mas agora eu vou implementar minha cama. Boa noite direto da Bahia!

 

(AQUI você PRECISA ADICIONAR OS ARQUIVOS DA BIBLIOTECA DO JQUERY).

hahahaha! Meu nível de contato com ajax e seus frameworks não é tão superficial assim aponto de necessitar tal advertência :)

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.