Ir para conteúdo

POWERED BY:

Arquivado

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

Dinho Z.

Carregar Data ou Hora

Recommended Posts

Galera,

 

Estou começando a mexer agora com Ajax, mas já tenho um bom conhecimento em (X)HTML, CSS, JS e algumas linguagens WEB.

 

Estou tentando fazer o seguinte:

 

Tenho uma página (ASP, PHP, JSP...) em que ela me retornará a data ou a hora do Server, e, via Ajax, irei trazer este conteúdo para minha página HTML.

 

Estou conseguindo trazer esta informação, porém gostaria que ela se atualiza-se minuto a minuto.

 

Tentei usar o setTimeout, porém não está funcionando, não sei se fiz algo de errado, mas a data/hora não atualiza na minha página HTML, somente se eu abrir a página dinâmica que me retorna esta informação, e atualizo ela, é que ela reflete no HTML.

 

Segue abaixo o código JS/Ajax:

var http_request = false;var ie4 = document.all;var ns4 = document.layers;var ns6 = document.getElementById && !document.all;var old = "";function makeRequest(){	http_request = false;	if (window.XMLHttpRequest) { // Mozilla, Safari,...		http_request = new XMLHttpRequest();		if (http_request.overrideMimeType) {			http_request.overrideMimeType('text/xml');		}	}	else		if (window.ActiveXObject) { // IE			try {				http_request = new ActiveXObject("Msxml2.XMLHTTP");			}			catch (e) {				try {					http_request = new ActiveXObject("Microsoft.XMLHTTP");				}				catch (e) {}			}		}	if (!http_request) {		alert('Giving up :( Cannot create an XMLHTTP instance');		return false;	}	http_request.onreadystatechange = NewDate;	http_request.open('GET', 'data.jsp', true);	http_request.send(null);}function NewDate(){	if (http_request.readyState == 4) {		if (http_request.status == 200) {			//Usando um arquivo XML			/*			var xmldoc = http_request.responseXML;			var root_node = xmldoc.getElementsByTagName('root').item(0);			alert(root_node.firstChild.data);			*/			//Usando um arquivo TXT			data_server = http_request.responseText;			if (old == "die"){				return;			}			if (old == "true") {				document.write(data_server);				old = "die";				return;			}			if (!ie4 && !ns6 && !ns4){				old = "true";				NewDate();			}			if (ns4) {				document.ClockPosNS.visibility="show";				clockpos = document.datans;				liveclock = clockpos.document.data_atual;				liveclock.document.write(data_server);				liveclock.document.close();			}			else				if (ie4 || ns6){					document.getElementById("data_atual").innerHTML = data_server;				}		}		else {			document.write('Ocorreu um erro!');		}	}	setTimeout("makeRequest()",60000);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Tire o setTimeout("makeRequest()",60000); lá do final

 

2- na tag body, você insere onload="refreshTime();"

 

3- crie uma nova variavel global: var verifying = false;

 

4- insira essa função abaixo da declaração das suas váriaveis mas antes das funções:

function refreshTime() {  if (verifying) http_request.abort();    verifying = true;  makeRequest();  setTimeout("refreshTime()",60000);}
5- Logo após: if (http_request.status == 200) { insira: verifying = false;

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.