Actualizar o refrescar datatable de forma automática cada pocos segundos

no-hay-pregunta-tonta

No hay pregunta tonta!

Bienvenidos a VerTutoriales.com en esta ocasión os traigo un código para actualizar una Datatable a tiempo real cada pocos segundos (en el ejemplo son 3 segundos)

Es normal que cuando trabajamos con información y aún más común que estemos monitorizando esa información que esta tenga que actualizarse cada poco tiempo y de forma automática. Para ello javascript nos ofrece la función setInterval que lanzará de forma repetitiva cada x milisegundos la función que queramos.

En nuestro caso, vamos a utilizar un código compartido desde nuestro canal de Youtube, se trata de una actualización de una datatable utilizando la función setInterval, consiguiendo así que la información quede refrescada cada 3000 milisegundos.

El código js con la llamada AJAX a la datatable:

// actualizacion de contenido en tiempo real
setInterval(function() { 
table.ajax.reload(function(){
$(".paginate_button > a").on("focus",function(){
$(this).blur();
});
}, false);
}, 3000);

Espero que os sirva! Si tenéis cualquier duda podéis comentar y así os ayudaremos con vuestros problemas 😀

Seguimos avanzando!

Te puede interesar:

7 comentarios

  • coseki commented on 25 mayo, 2016 Reply

    hola amigo,disculpa la imprudencia el asunto es que al cargar la tabla con datos de mysql, solo queda cargando, no se si tengo mal ubicado mi funciones.php o si tengo un error en el saludos

    • Carlos Dk commented on 25 mayo, 2016 Reply

      Eso pueden ser varios motivos, lo más normal es que la llamada no esté bien hecha o que el PHP no esté devolviéndote como esperaba la información.
      Lo más sencillo es que desmontes todo y vayas paso a paso. Si ya te falta solo la sincronización con la base de datos. Primero muestra la información sin la tabla y comprueba que lo que devuelve es lo que espera la tabla.

      Ahora al principio es muy importante ver como trabaja cada objeto por separado. Por un lado la datatable, y por otra la parte de infraestructura lógica de PHP con MySQL 😉

      Finalmente, te recomendaría utilizar el inspector de elementos para ver resultados 😉

  • Jaime Grijalbo commented on 6 diciembre, 2016 Reply

    Por favor una ayuda… ¿Cómo hago para que un DATATABLE mantenga la posición? Cuando se actualiza algún dato que funciona con makeEditable; se va al inicio de la tabla y se pierden las barras de desplazamiento.

    • Carlos Dk commented on 7 diciembre, 2016 Reply

      Supongo que actualizas la tabla completa y por eso se “reinicia”, tendrás que modificar la celda o fila afectada a mano, si recargas, lo único que se me ocurre es que vuelvas a posicionarla guardando el registro último modificado, pero aún así, esa recarga quedará “fea” de cara al usuario.

      Espero que te sirva. Un saludo!

  • daniel commented on 20 julio, 2018 Reply

    hola, ando buscando algo parecido, lo queria preguntar si tu sabes algun metodo de saber si una tabla mysql fue modificada y recien recargarla en una tabla o grid en php, soy nuevo en esto y no eh podido encontrar nada de eso en internet de ante mano gracias

    • Carlos Dk commented on 24 julio, 2018 Reply

      Hay opciones llamadas disparadores o “triggers” que se lanzan cuando se ejecuta alguna de las acciones como inserción, modificación y/o eliminación, de manera que se acción puede conllevar algún tipo de bandera que controles.

      Otra forma es utilizar algún lenguaje desde el servidor que se comunique con el cliente como node.js

      Y finalmente, si la tiras por el camino más sencillo pero que puede ser igualmente funcional, lanzar desde el cliente un refresco de la información cada X segundos.

      Espero que te sirva o al menos te oriente para seguir el camino 🙂

      • daniel commented on 24 julio, 2018 Reply

        muchas gracias, justo hoy llegue a esa solucion de los node.js como dije anteriormente soy nuevo en esto, vere si tu tienes alguna cosa relaciona con los node en tu pagina y si no estaria agradecido si haces algo parecido de lo que pido, gracias otra vez por responder tan rapido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.