[RESOLVIDO] Problema com ajax

Boa noite pessoa,
estou com um problema ao executar um ajax, eu tenho uma função que executa uma requisição ajax a cada 30 segundos afim de atualizar dados na tela.
A função executa normalmente no tempo correto, o problema é que essa função continua executando mesmo eu saindo da página que o script está(estou preocupado com a performasse do sistema por conta disso), se trata de uma jsp, os códigos javascript fica dentro da própria jsp.
Alguém sabe o por que disso acontecer?

function buscarTodosEventos() {
	var search = window.location.search;
	var url = "";
	var id = search.substring(search.indexOf("=") + 1, search.length);
	
	if(id != "")
		url = "eventosServlet" + "?id=" + id;
	else
		url = "eventosServlet";
	
	$.get(url, function (data) {
		$('#calendar').fullCalendar("removeEvents");
		$('#calendar').fullCalendar("addEventSource", JSON.parse(data));
		$('#calendar').fullCalendar("refetchResources");
		$('#calendar').fullCalendar("rerenderEvents");
	});
}

//aqui em chamo a função a cada 30 segundos
$(document).ready(function() {
	setInterval(function() {
		buscarTodosEventos();
	}, 30000);		
});

Teoricamente, isso é impossível. O javascript precisa da janela/aba aberta para executar.
Se está usando jQuery, faz menos sentido ainda que isso continue, visto que o objeto $ não estará disponível.

Bom dia, @darlan_machado, também não entendo como está ocorrendo isso, não deveria ser possível, quando troco de jsp o script que esta em outra jsp continuar executando. estou analisando o problema.

Se seu script fizer a requisição ajax, e vc mudar de página, a thread no servidor já terá sido criada e irá executar até o fim, não importando se já tiver mudado de página. Agora, se o código do servidor estiver executando infinitamente, creio que seja um problema de implementação no servidor, pois o setInterval não irá executar de novo (à menos que esse código javascript esteja replicado em outras páginas).

@Lucas_Camara agradeço, o sistema que estou dando manutenção e bem antigo a maneira a qual ele foi construído não é muito boa, eu conseguir resolver o problema, nesse sistema não há troca de páginas(navegação), toda vez que entro em um link para outra página o que estava acontecendo era que estava sendo executado uma função js com o load() que jogava qualquer jsp no centro da mesma página. assim $(’#miolo’).load(‘nome.jsp’); dessa maneira o processo do setInterval ficava sempre atrelado a mesma página. oque eu fiz vou tirar essa função load() do link ao sair da página. estava assim <a href="navegar('#miolo','nome.jsp')"></a>, troquei para isso <a href="nome.jsp"></a> e fui resolvendo as coisas.

1 curtida

agradeço @darlan_machado sua resposta me esclareceu umas coisas e conseguir resolver o problema.