Refresco Automático de un Div Cada X Segundos con jQuery

Tanto si desarrollas una aplicación web en la que se muestra una colección de datos dinámica, que se actualiza cada poco tiempo, como si quieres que el contenido de una parte de tu web se actualice o refresque periódicamente, aquí tienes una solución a tu problema utilizando jQuery.

Tanto si desarrollas una aplicación web en la que se muestra una colección de datos dinámica, que se actualiza cada poco tiempo, como si quieres que el contenido de una parte de tu web se actualice o refresque periódicamente, aquí tienes una solución a tu problema utilizando jQuery.

En las antiguas webs, sobre todo en la de noticias o periódicos, cada cierto tiempo se refrescaba todo su contenido, actualizando la página completa. Para eso utilizamos el tag Meta refresh de HTML. Lo que hace es refrescar la página o frame cada cierto tiempo. Para ello, entre los tags <HEAD></HEAD> de la página incluíamos el siguiente código:

<meta http-equiv="refresh" content="5">

Lo que hace es refrescar todo el contenido de la página cada 5 segundos. Este comportamiento está desaconsejado por el World Wide Web Consortium (W3C) ya que puede desorientar al usuario.

Durante el desarrollo de una aplicación web, necesitábamos que una tabla de datos (utilizábamos displaytag, de la que ya os he hablado anteriormente) se actualizara cada cierto tiempo, definido por el usuario), debido a que el estado de los datos mostrados en esta displaytag tenían un comportamiento bastante dinámico y cambiante.

Para ello me creé en la página un div con id  salastatus y éste contenía otro div con id resulttable que contenía la displaytag y algún control más que deseaba actualizar, a continuación introduje el siguiente código que se ejecuta tras la carga de la página:

 $(document).ready(function(){
   var refreshId = setInterval(refrescarTablaEstadoSala, 30000);
   $.ajaxSetup({ cache: false });
 });

Lo que hace el código es, cada 30 segundos (el valor del parámetro va en milisegundos), se ejecuta la función javascript refrescarTablaEstadoSala. Comentaros que aquí para simplificar he indicado el número de milisegundos de forma directa, pero realmente lo enviaba el servidor, a partir de los datos de configuración del usuario.

A continuación muestro el contenido de la función refrescarTablaEstadoSala:

function refrescarTablaEstadoSala() {
  $("#rolling").toggle();
  $("#salastatus").css('opacity', 0.4);
  $("#salastatus").load('estadoSala.do?randval='+ Math.random() + " #resulttable", function(){
      //aquí puedes meter más código si necesitas;
      $("#salastatus").css('opacity', 1);
      $("#rolling").toggle();
  });
}

Lo primero que hago es mostrar un icono de cargando cuyo id es “rolling” ( $(“#rolling”).toggle(); ) y pongo la capa que quiero actualizar transparente ( $(“salastatus”).css(‘opacity’, 0.4); ), totalmente operativa, pero el usuario ya detecta que ha comenzado una actualización. A continuación mediante el método load, de la que ya os hablé en esta publicación anterior, realizo una petición de la página con un número aleatorio como parámetro (para que el navegador no me devuelva la página de caché) seguido de un espacio y el div que quiero cargar en salastatus precedido de un #. Tras la carga, oculto el icono cargando y quito la transparecia a la capa. Antes de esto puedes completar la función con el código que necesites o el tratamiento de errores que desees.

No olvides incluir el enlace al fichero js de jquery o no te funcionará. Cómo ves una solución bastante elegante de resolver el problema ocasionado con el meta refresh y su manera, mucho más intrusiva de refrescar la página.

Actualizar a WordPress 3.2

Ya comenté en otro post como instalar WordPress en la empresa donde tengo alojado mi dominio (1&1), pues bien, la herramienta de edición y publicación evoluciona y presenta nuevas versiones con interesantes novedades. En este post describiré cómo exportar la base de datos, hacer una copia de seguridad de la actual versión de WordPress y actualizar de forma automática a WordPress 3.2.

Por qué actualizar a WordPress 3.2

A continuación hago un rápido repaso de las novedades de la versión de WordPress, para que compruebes si merece la pena actualizar. Personalmente considero que sí merece la pena:

  • Nueva interfaz de administración: Tiene un aspecto más ligero y se ha rediseñado totalmente el menú de la izquierda, con un funcionamiento más fluido.
  • El editor de entradas y páginas es más minimalista y su funcionamiento ha mejorado
  • Nuevo modo de escritura sin distracciones o Zen mode. Con un sólo clic de ratón eliminamos cualquier menú, enlace o botón de la pantalla, dejando únicamente el área de escritura. Sólo al pasar el ratón por la parte superior podemos ver las diferentes opciones. Esta es mi nueva funcionalidad favorita.
  • Mejoras en las actualizaciones. En actualizaciones menores dentro de la misma versión, no se tocarán los ficheros core de la versión.
  • Mejoras de velocidad. Se ha trabajado en la carga lenta de PHP y un parche para que el menú de administrador cargue más rápido (Aquí no he notado grandes diferencias).
  • Mejoras en la API de listado de tablas.
  • El escritorio no soportará Internet Explorer 6 y te avisará si la versión de tu navegador es inferior a Chrome 11, Safari 5, Firefox 4, Opera 11 e IE 9.
  • Twenty Eleven. Nuevo tema por defecto para el año 2011. Es sencillamente genial, es un tema muy sencillo y claro diseñado según el enfoque del Responsive Design, es decir, que el diseño de las páginas se verán perfectamente en cualquier dispositivo, con cualquier tipo de pantalla. La única pega es el gran tamaño de la imagen de cabecera (1000 x 288).
  • Además ahora, mientras estés autenticado y estás visualizando tu publicación, podrás ver una barra wordpress en la parte superior con enlaces directos a las herramientas más utilizadas.

En el siguiente vídeo se reflejan todas las novedades enumeradas anteriormente:

Haciendo copias de seguridad

Si nos hemos decidido y vamos a actualizar, es una buena costumbre realizar una copia de seguridad de nuestra base de datos MySql, así como de los ficheros de la versión que tenemos actualmente. De esta forma si ocurre algo no deseable, no perderíamos nuestros artículos, usuarios, tags, categorías, comentarios o ficheros que hayamos personalizado. En caso de que no desees hacer copias de seguridad, o tu empresa de hosting no es 1&1 puedes ir directamente al siguiente paso. Existen diferentes maneras de hacer esto (el propio wordpress incorpora herramientas para realizar un backup) pero esta vez voy a describir cómo realizarlas desde el panel de control de mi proveedor de hosting 1&1.

Para la base de datos:

  1. Desde la pantalla principal del panel de control, pulsamos sobre el enlace Gestión de MySQL.
  2. Aparecerá una pantalla con la lista de instancias de bases de datos que disponemos. Pulsamos sobre el botón phpmyAdmin de la base de datos que esté asociada a la instalación de wordpress. Si sólo tienes una como es mi caso pulsa el botón.
  3. Aparecerá la pantalla mysql-control-center en la que aparecen las tablas de la base de datos (izquierda) y la configuración de la misma, a la derecha. Pulsamos el enlace Exportar.
  4. En la siguiente pantalla aparecen todas las opciones para exportar. Como la exportación va a ser un fichero con los scripts de creación e inserción en la base de datos de todos los datos que tengamos, podemos personalizar o afinar las sentencias que genera. Si no tenemos conocimientos de BBDD, dejamos los valores por defecto y pulsamos Continuar.
  5. En unos segundos aparecerá el contenido del fichero generado. Debemos seleccionar todo y copiarlo para pegarlo posteriormente en un fichero local de texto en nuestro equipo. Si el fichero lo renombramos por ejemplo BBDD16_07_2011.sql, tendremos una “fotografía” de la BBDD en un día determinado.

Para los ficheros de WordPress de la versión actual, podríamos utilizar un cliente FTP y bajarnos el directorio de instalación pero esta vez vamos a crear un fichero comprimido y a continuación lo bajaremos a nuestro disco local:

  1. Desde la pantalla principal del panel de control, pulsamos sobre el enlace Gestión de Ficheros.
  2. Aparecerá la pantalla con el árbol de carpetas a la izquierda, y el contenido a la derecha. En el árbol de carpetas pulsamos sobre la carpeta raíz ‘/’ y en la parte de la izquierda seleccionamos la carpeta que contiene la instalación de WordPress (en mi caso blog), es la que contiene a las carpetas wp-admin, wp-content y wp-includes. Pulsamos sobre el menú Archivo Zip y luego sobre Comprimir.
  3. Aparecerá un diálogo para introducir el nombre del fichero zip. Podemos nombrarlo, como hicimos con la base de datos con la fecha actual (blog16_07_2011.zip). Generará en la carpeta raíz un fichero con todo el contenido.
  4. Para bajarlo del servidor a nuestro equipo, seleccionamos dicho fichero y pulsamos sobre el menú Transferencia y luego sobre Descargar.

Con estos dos sencillos pasos nos hemos cubierto las espaldas ante posibles desastres.

Actualización  a WordPress 3.2

Desde el escritorio de adiministración de WordPress nos avisa de que hay una nueva versión de la herramienta. Pero antes de actualizar es conveniente desactivar todos los plugins que se encuentren activos. En el menú plugins pulsamos sobre Plugins instalados para listar la lista de los mismos. Desde aquí desactivamos todos los que se encuentren activos.

A continuación vamos al menú Actualizar y pulsamos sobre el botón correspondiente de la actualización de WordPress 3.2. Lo normal es que haya dos opciones, una para la versión en inglés y otra para la versión en castellano, así que seleccionaremos la que tiene el sufijo es_ES. Aquí comienza el proceso de descarga e instalación automática de la actualización. Lo normal es que no haya problemas, pero mucho ojo: si se trata de un salto de una versión más antigua, reemplazará los ficheros que hayamos modificado o personalizado.

Para acabar y si todo ha ido correctamente, debemos ir activando los plugins uno a uno, es decir, activamos y probamos si es compatible con la versión. En caso negativo, lo dejamos desactivado hasta que encontremos alguna actualización o solución. Puedes aprovechar como en mi caso para actualizar el tema, yo me decanté por el TwentyEleven, un tema claro y sencillo que además, gracias al responsive design muestra el blog correctamente tanto en PC, Tablets, iPhone y Android.