Entradas

Mostrando entradas de noviembre, 2009

Refrescar página que no se actualizan

Imagen
Siempre que cambiamos un código js o css se actualiza nuestra aplicación pero muchas veces no se muestran los resultados esperados en las páginas de nuestros usuarios, es normal pues los navegadores del cliente descargan una caché para evitar estar descargando estos archivos y no siempre es muy fiable su opción de auto actualización que puede ser por el tamaño del archivo js o css o por su fecha de modificación, o por el código asignado por el servidor web que indica si se ha modificado o no. Las técnicas son simples: pulsar la tecla F5 que envía la orden al navegador de que actualice el contenido o en caso más extremo borrar la caché del mismo y que vuelva a cargar todo. Esto se complica cuando utilizamos herramientas como Minify Uri Builder, que optimizan y comprimen códigos js o css para eliminar saltos de línea, comentarios y espacios en blanco, pues algunas se crean su propio cache por tanto el usuario recibe el código comprimido de la caché no del archivo nuevo, esto ocurre

Maximum call stack size exceeded

Imagen
He estado volviéndome loco desde que utilizando la funcionalidad de jQuery UI Dialog en Chrome al pulsar en cada uno de los botones que había definido me salía el siguiente error: ‘RangeError: Maximum call stack size exceeded’. Al probar el mismo script en mozilla se bloqueaba completamente y la pista final me la dio Opera que me mostraba el siguiente error: ‘Event thread: click Abort (control stack overflow)’. Sacando conclusiones si Maximum call stack size exceeded es un error de webkit asociado a un exceso de llamadas recursivas en una misma función entonces deduje con el error de Opera que estaba asociado al hacer click en cada botón del nuevo diálogo. Curiosamente ejecutaba todas las funciones que estaban definidas dentro de cada botón y el script dejaba de funcionar cuando ponía la opción $(this).dialog(‘close’); El script original es el siguiente: $("#dialog_attachment").dialog({             bgiframe: true,             autoOpen: false,             w

Optimizar consultas lentas en SQL

Imagen
La optimización de las bases de datos es un punto fundamental en todas y cada una de las aplicaciones, pero el uso de consultas optimizadas sin duda es otro punto a tener muy en cuenta, el problema es que muchas veces no sabemos cuales son estas consultas. Hoy rebuscando por internet he encontrado estos dos maravillosos manuales, uno para MySQL y otro para SQL Server 2005 o superior. en ellos nos explican distintos puntos para optimizar las querys lentas y sobre todo nos muestran las distintas herramientas de cada uno de estos motores de base de datos para obtener estas. El enlace para las slow queries en MySQL y el enlace para la Optimización del rendimiento de las consultas de SQL Server . Adicionalmente tenéis unos comentarios en este post en inglés que se titula Quick and Dirty SQL Server Slow Query Log sobre el artículo de SQL Server muy útiles.

jQuery Treeview 1.4 bugs en Chrome 3+

Imagen
Luego de varias pruebas y solo con Google Chrome en versiones superiores a la 3 (la alpha de la 4 también ha sido testeada) el control de este pluging de jquery no se carga como debería. El pluging funciona perfectamente salvo cuando recargas la página con F5 que se carga todo correctamente menos el div que contiene los botones de control definido según el atributo ‘control’. El div en cuestión desaparece de la pantalla junto con todo lo que contiene y no muestra ningún error, no sé si será debido a la actualización de su motor de javascript que también impide el reenvio de un mismo formulario 2 o más veces hacia una nueva ventana.

Múltiples caídas de apache

Imagen
Tras varias semana de experimentar los mismos problemas en un CentOs con apache 2.2.3 y en un Windows server 2003 con apache 2.0.63 he llegado a la conclusión que las constantes colgadas del servidor apache no son más que un bug raro y letal de este multifacético servidor. Posibles causas: es indudable que es producido por una especie de sobrecarga en las peticiones, cuando hay muchos usuarios realizando peticiones al mismo tiempo sobre el server pero que no superan el número máximo de clientes permitidos y que tampoco saturan la memoria del equipo. Es una especie de bloqueo interno del servidor y que es incapaz de recuperarse. Los scripts que comprueban el número de procesos activos así como si esta activo el servicio son ineficaces porque el servicio en realidad está activo lo único que el servidor está en una especie de bloqueo que le impide servir páginas. Estoy diseñando el script para Linux el cual lo que básicamente hará es conectarse al servidor si se puede conectar har