Atualizar dados de tempo em tempo com javascript e java

8 respostas
G

Estou usando este codigo para atualizar um Span de 5 em cinco segundos

<script language="JavaScript" type="text/javascript">
<!--
function conta(contador) {
	document.getElementById('tempo').innerHTML=contador;
	if (contador != 0){
		contador = contador-1;
		setTimeout("conta(" + contador + ")", 1000);
	} else {
		contador = 5;
		setTimeout("conta(" + contador + ")", 1000);
	}
}
-->
</script>

Agora preciso que este javascript faça uma consulta nesse tempo tambem, como fazer ?

<%
StringBuilder sqlUsuarioEmpresa = new StringBuilder();
sqlUsuarioEmpresa.append(" SELECT DISTINCT coalesce(cad_cedente.ced_fantasia, cad_cedente.ced_nome, 'Selecionar empresa') AS emp_nome ");
sqlUsuarioEmpresa.append(" FROM fr_usuario ");
sqlUsuarioEmpresa.append(" LEFT JOIN cad_empresa_atual ON cad_empresa_atual.ema_usuario = fr_usuario.usr_codigo ");
sqlUsuarioEmpresa.append(" LEFT JOIN cad_cedente ON cad_cedente.id_cedente = cad_empresa_atual.id_filial ");
sqlUsuarioEmpresa.append(" WHERE fr_usuario.usr_login = '" + wi.getUser() + "' ");
PreparedStatement pStmtUsuarioEmpresa = conn.getPreparedStatement(sqlUsuarioEmpresa.toString());
ResultSet rSetUsuarioEmpresa = pStmtUsuarioEmpresa.executeQuery();
String empresaLogada = null;

while (rSetUsuarioEmpresa.next()) {
	empresaLogada = rSetUsuarioEmpresa.getString("emp_nome");
}
%>

8 Respostas

D

Coloca um refresh automático na página, camarada.

G

Nao posso. Preciso que so altere este componente.

D

Conhece ajax?
Coloca esse trecho em outra jsp, cria uma div dentro da jsp em que ela está atualmente e faz o refresh via ajax.

Aliás, scriptlet é para matar, hein?

I

Estou com praticamente o mesmo problema, a diferença é que uso struts 2, hibernate, etc…

Tenho um form e logo abaixo dele uma tabela, quando preencho os dados desse form a tabela deve ser atualizada, porem imagine que vária pessoas estão nessa mesma página e a tabela deve ser atualizada com informações de todos os usuários.

não posso dar refresh na página pois o usuário pode estar preenchendo o form e perderia estas informações…

desculpe, mas resposta como use ajax não vão resolver, sou muito noob, preciso de alguma informação mais específica…

Muito obrigado

I

segue abaixo exemolo do que preciso

seria essa jsp, com um form em cima e atualizando sem piscar a tela nem atrapalhando o preenchimento do form

obrigado

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh"
	content="5;URL=gerarCorrida.action?funcao=renovarCorrida">
<title>Sistaxi - Gerar Corrida</title>

</head>
<body>
	<table border=3 align="center">
		<tr>
			<th colspan=3 align="center">
				<h1>Corridas Ativas</h1>
			</th>
		</tr>
		<tr>
			<th align="center">Cliente</th>
			<th align="center">RT</th>
			<th align="center">Ação</th>

		</tr>
		<s:iterator value="listaCorrida">
			<tr>
				<td width="33%" align="center"><s:property value="cliente.nome" />
				</td>
				<td width="33%" align="center"><s:property value="taxi.rt" />
				</td>
				<td width="33%" align="center"><s:set name="id"
						value="listaCorrida[#stat.index].id" /> <input name=""
					type="button"
					onclick="parent.location.href='gerarCorrida.action?corrida.id=<s:property value="id" />&funcao=cancelarCorrida' "
					value="Cancelar"></td>
			</tr>
		</s:iterator>
	</table>
</body>
</html>
G

drsmachado:
Conhece ajax?
Coloca esse trecho em outra jsp, cria uma div dentro da jsp em que ela está atualmente e faz o refresh via ajax.

Aliás, scriptlet é para matar, hein?

Estou chamando o jquery

Criei o arquivo “empresaUsuario.jsp”, nao estou sabendo como continuar daqui em diante.

E

com o jquery vc só precisa colocar esse script java em um jsp, e chamar assim por javascript:

$("#id_do_componente").load("url_da_pagina_com_os_dados")
C

Eu posso inserir essa linha na minha função de contar

Exemplo:

function conta(contador) {
	document.getElementById('tempo').innerHTML=contador;
	if (contador != 0){
		contador = contador-1;
		setTimeout("conta(" + contador + ")", 1000);
	} else {
		contador = 5;
		$("#empresaLogada").load("main.jsp #link");
		setTimeout("conta(" + contador + ")", 1000);

	}
}
Criado 11 de outubro de 2011
Ultima resposta 16 de nov. de 2011
Respostas 8
Participantes 5