Ajax + Servlet

Seguinte,

Meu Ajax chama um servlet que retorna um dado. No servlet a consulta em Sql é a seguinte:

O que preciso é que o Ajax execute automaticamente de tempo em tempo, chamando assim a servlet e retornando um resultado diferente a cada chamada.
Tentei usar o setInterval(), ele funciona, chama a função Ajax() no tempo determinado, porem não chama novamente a servlet.

Alguem poderia ajudar?

Ajax:


function Ajax(){	
	var xmlHttp;
		try{	
			xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
		}
		catch (e){
			try{
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
			}
			catch (e){
			    try{
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e){
					alert("No AJAX!?");
					return false;
				}
			}
		}

	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){			
			retorno = xmlHttp.responseText.split("|"); 					
			document.getElementById('imagem').innerHTML= '<img src="' + retorno[5] + '" height="150" widht="128">';			
			}		
		}
		xmlHttp.open("GET","controle_imagem",true);		
		xmlHttp.send(null);		
	}

	//window.onload=function(){						
			//setInterval('Ajax()',1000);			
		//}

Cara, não sei te dizer se tem como, mas dá uma olhada no dojo toolkit http://dojotoolkit.org/documentation/tutorials/1.7/ajax/ e veja se tu acha algo relacionado a isso.

use o setTimeout do javascript, ex:

function olaMundo() {
    alert("ola mundo!");
    setTimeout("olaMundo()", 1000); //agenda chamada para 1 segundo
}

olaMundo(); //chamado uma unica vez

[]'s

o setTimeout() não se aplica no caso, pois preciso que a função execute de tempo em tempo, e não somente uma unica vez.
Por isso estou usando o setInterval(). A questão é que ele chama normalmente a função ajax no tempo estipulado, o problema é que
não entra no servlet controle_imagem quando chama o Ajax depois da primeira execução.

Bom dia dmribeiro,

Passei por um problema similar que ocorria por causa do cache do navegador.

Dê uma olhada neste artigo, acho que ele pode te ajudar: http://spacebug.com/solving_browser_caching_problem_of_ajax-html/

setInterval() não funciona em todos os navegadores! Teste com outros navegadores para ver.

Conseguei resolver o problema,

Segui a dica do nosso amigo Newton Angelini. O problema ocorre por que o navegador armazema em cache a requisição feita pelo ajax.
Uma das soluções é passar como parametro na url uma função data ex: Date()getTime(), pois esta muda os segundos constantemente,
enganando asssim o navegador.

alteração feita (antes):

(depois da alteração):

var url = "controle_imagem?parametro=" + new Date().getTime(); 
xmlHttp.open("GET",url,true);

Valeu pela atenção galera.