[Ajax] Refrescar div cada cierto tiempo
Introducción
Si tenemos un dato que queremos actualizar cada cierto tiempo, ya puede estar en un div o cualquier otro contenedor, lo que debemos hacer es una petición ajax establecida en un intervalo que se repetirá siempre. Aplicaciones como Twitter o Gmail ya lo hacen.
En realidad hay múltiples formas de realizar esto, pero una forma fácil de hacerlo es utilizar un plugin de jquery.
Timers
Timers es el plugin en cuestión, y comprimido se queda en 1.54 KB, algo más que razonable. Tiene varias funciones, pero vamos a centrarnos en el uso para lo que queremos.
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 27 28 29 30 31 | //Incluimos Jquery <script language="javascript" src="jquery.min.js"></script> //Incluimos el plugin <script language="javascript" src="jquery.timers-1.0.0.js"></script> <script type="text/javascript"> $(document).ready(function(){ var j = jQuery.noConflict(); j(document).ready(function() { j(".refreshMe").everyTime(10000,function(i){ j.ajax({ //Aquí se hara la petición (sin nada) url: "refresh-me.php", cache: false, success: function(html){ //Aquí refrescamos el div j(".refreshMe").html(html); } }) }) }); j('.refreshMe').css({color:"red"}); }); </script> <body> <div class="refreshMe">Esto se va a refrescar cada 10 seg</div> </body> |
Primero de todo incluimos Jquery y el plugin en cuestión (más abajo tienes los links para todo), y después establecemos el tiempo con j(“.refreshMe”).everyTime, que indica que los elementos con los selectores “.refreshMe” van a ser actualizados. También aquí establecemos el tiempo que queremos(10 segundos).
En la petición no se manda ningún parámetro, por simplicidad, pero se podría hacer de igual forma.
Demo
En este enlace, puedes ver como funciona, simplemente se llama a la función rand de php, que genera un número “aleatorio” y se actualiza el valor en el html.
Enlaces
Plugin | Repositorio Jquery
Vía | That Agency

4 Comentarios
Para prescendir del plugin, también se puede usar javascript plano con la función setInterval()
Hay alguna manera de evaluar el valor que devuelve el archivo PHP??? amplio si yo en el PHP hago una consulta a una BD y dependiendo de ésta -> echo 1 ó echo 2, desde el script yo puedo saber que valor me devolvio el PHP para ver si actualizo o no el div.- gracias
SI he entendido tu pregunta, que creo que si, si se puede, al final la respuesta del script se recibe a través de la petición Ajax, por tanto evaluando esta respuesta puedes hacer lo que desees.
Espero haber aclarado tu duda, si no es así no dudes en comentarlo y te lo explico más a fondo.
Un saludo.
Gracias jose por tu respuesta pero sigo sin saber como evaluar la respuesta del PHP le di mil vueltas y no lo puedo hacer, te agradeceria si me das una mano llevo unos dias lidiando con esto, gracias de nuevo.-