AJAX - Consultar base de datos cada X segundos

 
Vista:
sin imagen de perfil

Consultar base de datos cada X segundos

Publicado por Lina (1 intervención) el 06/06/2016 19:51:09
Hola, lo que necesito hacer es lo siguiente, no se el porque pero si se actualiza un dato en base de datos no me lo pinta de una vez en mi vista debo volver a correr mi proyecto para ver la actualización del dato. Me gustaría hacer un método que cada 5 segundos consulte la base de datos y me actualice el dato que quiero.

Me han dicho que puedo hacerlo con f:ajax pero no lo se utilizar, si me pudieran dar un ejemplo para guiarme lo agradecería mucho.

La base de datos es MySQL, utilizo Java - JavaServerFaces y la conexión la realizo por medio de Persistence Unit.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Consultar base de datos cada X segundos

Publicado por xve (222 intervenciones) el 07/06/2016 08:32:26
Hola Lina, para estos casos, lo que tienes que utilizar es un websocket, ya que de esta manera, no tendrás que hacer peticiones al servidor, sino que el servidor, cuando haya un cambio informará a la pagina web.

De todas maneras, si lo quieres hacer con ajax, yo te recomiendo utilizar jquery... aqui te muestro un ejemplo que realiza una petición al archivo ajax.php cada 5 segundos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<style>
	#tabla1,
	#tabla2 {border:1px solid;width:100px;float:left;}
	#tabla2 {margin-left:10px;}
	</style>
 
	<script>
	$(document).ready(function(){
		setInterval(function(){
			$.post("ajax.php", function(data){
				console.log(data);
			}, "json");
		},5000);
	});
	</script>
</head>
 
<body>
 
</body>
</html>


Para mi ejemplo, llama a un archivo php, que simplemente devuelve el timestamp en formato json:
ajax.php

1
2
3
<?php
echo json_encode(array("time"=>time()));
?>

Espero que te sirva de ayuda!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar