Foros del Web » Creando para Internet » Diseño web »

IE que se va haciendo cada vez más lento

Estas en el tema de IE que se va haciendo cada vez más lento en el foro de Diseño web en Foros del Web. Buenas, He creado una aplicación web con muchos formularios que son bastante complejos. La tecnología que uso es PHP, MySQL, JQuery y Ajax. Lo pruebo ...
  #1 (permalink)  
Antiguo 28/01/2010, 05:44
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
IE que se va haciendo cada vez más lento

Buenas,

He creado una aplicación web con muchos formularios que son bastante complejos.

La tecnología que uso es PHP, MySQL, JQuery y Ajax. Lo pruebo en IE8.

En algunos formularios, los más complejos (con muchos combos, tablas, actualización de datos con Ajax, etc), según voy probando distintas opciones cada vez se hacen más y más lentos, por lo que tengo que acabar cerrando el explorador (a través del Administrador de Tareas de Windows) y veo que la pestaña del IE de mi formulario tiene a la CPU ocupada incluso por encima del 80 ó 90. La cierro y la vuelvo a abrir, y hasta la siguiente, cosa que no tarda mucho, según las operaciones que haga con él.

¿Qué debo hacer? Imagino que es gestionar la caché, pero no sé como hacerlo desde el javascript o jquery. Me vendría muy bien una ayuda.

Saludos.
  #2 (permalink)  
Antiguo 28/01/2010, 05:55
Avatar de Emirodgar  
Fecha de Ingreso: junio-2008
Mensajes: 1.255
Antigüedad: 15 años, 10 meses
Puntos: 121
Respuesta: IE que se va haciendo cada vez más lento

¿Has probado con otros navegadores? quizá el problema sea tu aplicación que consume muchos recursos...
__________________
Sígueme en Twitter @Emirodgar | Diseño web Salamanca |¿Necesitas humor ?
  #3 (permalink)  
Antiguo 28/01/2010, 06:05
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: IE que se va haciendo cada vez más lento

De eso estoy completamente seguro, de que consume muchos recursos, pero los consume sobre todo porque el navegador no se desembaraza de lo que ya no necesita, por si hay que volver atrás, ya sabes, el historial.

Estamos usando navegadores de internet como interfaz para aplicaciones complejas, algo para lo que no fueron inicialmente diseñados, pero que es algo muy cómodo para el usuario, porque no hay que instalar nada en el PC. Ahora se han ido adaptando con la 2.0 y todas esas cosas, pero no es como una aplicación de escritorio en donde no se guarda ningún historial ni nada parecido. Me gustaría saber cómo gestionar eso desde javascript o jquery.
  #4 (permalink)  
Antiguo 28/01/2010, 06:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: IE que se va haciendo cada vez más lento

concuerdo con Emirodgar, por mucho que no me guste a mí IE, no creo que sea tan lento como para eso, prueba con otros navegadores, quizás tendrás que optimizar el javascript de tu aplicación y evitar el abuso de AJAX (por ejemplo sacar cuentas desde php si se pueden hacer en el JS local)

intenta usar la versión comprimida de jQuery, es la misma, pero sin tabulaciones, espacios, etc. eso ayuda en el rendimiento del interprete js

PD: tanto en IE, Chrome y Firefox, han tenido algo en común en las últimas versiones: optimizaron el motor JS, por lo que estan preparados para la "nube" que es precisamente el desarrollo de aplicaciones web, muy pronto las aplicaciones comunes (tipo window) podrían desaparecer
  #5 (permalink)  
Antiguo 28/01/2010, 06:21
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: IE que se va haciendo cada vez más lento

Gracias a los dos pero creo que la clave está en la caché. Quizá me equivoque.

Cada vez que el usuario pulsa uno de los múltiples controles que tiene el interfaz, cambia el cotenido de muchos de los cuadros combinados, listas, tablas, etc. Nuevas posibilidades para el usuario que de nuevo interactúa con los controles del interfa para visualizar información nueva con nuevos cuadros combinados, listas, etc. Todo eso actualizado desde Ajax. Algunas listas desplegables ofrecen más de 1000 posibilidades, otras bastantes menos.

En las primeras interacciones entre el usuario y el interfaz todo va como la seda. El Ajax actúa y da la sensación de que estás trabajando en local. Un gustazo. Pero al cabo de unas cuantas interacciones la CPU se va sobrecargando y el interfaz se hace cada vez más lento hasta que es imposible usarlo.

¿Por qué se sobrecarga la CPU? Una vez se han descargado los datos en el DOM con Ajax y se actualiza el interfaz ya no tiene nada que hacer. Debería estar nuevamente disponible sin demora, pero no es así. ¿Qué es lo que sobrecarga la CPU? Si no es la caché del navegador que no necesito, ¿qué es?
  #6 (permalink)  
Antiguo 28/01/2010, 06:33
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: IE que se va haciendo cada vez más lento

la caché del navegador es un conjunto de archivos que éste guarda en el directorio de archivos temporales para evitar la re-solicitud de los mismos, por ejemplo imágenes, js, etc.

el caché hace más rápido el navegador, pero, cuando usas AJAX debes de expirar todos los response debido a que la caché del navegador actuará y no enviará el request, así que eso solo afecta la velocidad de respuesta en el servidor, no la del Javascript, generalmente los motores JS automatizan su memoria de objetos no utilizados.

por eso debes de probar tu sistema en otro navegador, por ejemplo firefox con firebug te permite descubrir la velocidad de los request y así determinar si el exceso de ellos disminuye el rendimiento de la aplicación.
  #7 (permalink)  
Antiguo 28/01/2010, 11:19
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: IE que se va haciendo cada vez más lento

¿Cómo se controla la expiración de los request de Ajax?
  #8 (permalink)  
Antiguo 28/01/2010, 12:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: IE que se va haciendo cada vez más lento

con estos encabezados:
Código PHP:
Ver original
  1. header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );  // disable IE caching
  2. header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
  3. header( "Cache-Control: no-cache, must-revalidate" );
  4. header( "Pragma: no-cache" );
  #9 (permalink)  
Antiguo 28/01/2010, 14:14
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: IE que se va haciendo cada vez más lento

Muy interesante. Muchas gracias maycolalvarez. Seguro que me resultará útil.

Con tu anterior explicación he ido a mi código y he comprobado que no tenía llamadas Ajax utilizando callbacks, con lo que, al cambiarlas para que se produzcan en cascada, parece que el problema se ha resuelto, al menos de momento.

Lo que no acabo de comprender es porqué funciona bien durante un rato, se interacciona bien, se hacen los request Ajax y responde bien y, a partir de cierto punto, se va haciendo pesado, cada vez más, hasta que casi se bloquea. Las operaciones del usuario son las mismas. Pero al abrir la página van bien y luego, cada vez funcionan más lentamente.

Por eso sospechaba que algo se iba quedando en memoria cada vez que interactuaba con el interfaz. En una ocasión la memoria que ocupaba el IE con una de las páginas, tras interactuar varias veces con ella, superaba el Giga, lo cual resulta inmanejable para el sistema. Pensé que el IE almacenaba una caché en memoria RAM, además de la del disco, para algún tipo de operaciones.

Gracias de nuevo.

Etiquetas: lento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.