miércoles, 9 de enero de 2013

[Truco] Forzar la ejecución de código jQuery al volver atrás

Hoy quería comentar un truco de programación que he necesitado aplicar para resolver un problemilla. Creo que es interesante porque me ha costado bastante de encontrar la solución correcta.

El problema era el siguiente: en una página web que estoy desarrollando cuando el usuario rellena un formulario de búsqueda y pulsa el botón de submit, yo muestro un mensaje "Buscando, por favor espere" con el típico icono de progreso. Esto lo hago usando jQuery con un efecto fade-in muy chulo. Al cargarse la nueva página con el resultado de la búsqueda el mensaje naturalmente desaparece. El problema era que al volver a la página anterior (back) el mensaje seguía ahí, lo cual debería solucionarse con un sencillo código jQuery:

$(document).ready(function() {
    $("#searching").hide();
});

¡Debería solucionarse! Pero no funciona porque según parece la librería jQuery impide la ejecución de código javascript al cargar una página desde la cache (historial). He tenido que buscar bastante para solucionarlo, pero al final lo he encontrado:

<body onunload="">
    ...
</body>

Es una pequeña chapuza, pero es sencillo y efectivo... ¡y funciona!

No hay comentarios:

Publicar un comentario