Prevenir el bloqueo de la UI

Con el auge de las llamadas asíncronas a través de peticiones AJAX me he acostumbrado a que todas las operaciones con javascript no bloqueen la interfaz gráfica de usuario y que cuando los datos estén listos ésta se actualice sin que el usuario se vea perjudicado por la obtención y procesado de los datos.

Pero claro, ¿qué pasa si los datos ya los tenemos cacheados y tenemos que procesarlos? Lo que ocurre por lo general es que se nos bloquea la interfaz de usuario y mientras se procesan el navegador o el dispositivo móvil se queda sin responder.

Una solución sencilla a este problema es provocar una llamada asincrona de la función que procesa los datos. Para ello podemos utilizar la función de setTimeout de javascript de la siguiente manera:

setTimeout(function() {
    procesadoDeDatos();
}, 100);

Con esto conseguimos que la ejecución de la función procesadoDeDatos se haga de manera asincrona y no se bloquee la interfaz esperan a que acabe el procesado.

Así podemos poner el típico mensaje de procesando, para que el usuario sepa que se está procesando su petición y éste a su vez si quiere puede seguir interactuando con la interfaz mientras espera que se le devuelvan los datos.

Deja un comentario

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

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>