2012-01-23 18 views
5

Me han encargado con la creación de un sitio de JavaScript muy pesado que por supuesto debe ser compatible con versiones anteriores, así como el trabajo en los dispositivos de gasa, cambiar dinámicamente el tamaño, etc ...Basándose en JavaScript

¿Alguien tiene consejos sobre cómo para ayudar con la fiabilidad del código? Actualmente, suceden muchas cosas cuando el DOM está listo. P.ej. los gráficos se escalan, los eventos de clic se definen, etc.

Sin embargo, si un archivo es lento o el usuario detiene la carga, el DOM listo no siempre se ejecuta y las imágenes no se redimensionan correctamente o algún otro JavaScript función para ejecutar.

La mayoría de las veces todo funciona a la perfección, pero existen esos tiempos extraños con la conectividad de red que causan algunos problemas "aleatorios".

Me encantaría escuchar algunas ideas para mejorar la fiabilidad.

+0

¿Por qué cambia el tamaño de las imágenes en el lado del cliente mediante JavaScript? ¿No sería más adecuado para sus necesidades utilizar la consulta de medios CSS y hojas de estilo personalizadas con gráficos pre escalados? Use scripts para cargar sus recursos. – Mithrandir

+0

@Mithrandir: ¿qué sucede si giro mi teléfono inteligente? Si los gráficos se ajustan bien, es necesario que descarguen todo el contenido, lo que puede ser lento. No estoy seguro si ese es el razonamiento, pero tiene sentido para mí. –

Respuesta

4

Cargue todo su contenido a través de JavaScript.

De esta manera puede asegurarse de que todas las bibliotecas necesarias estén cargadas antes de que se muestre la aplicación. También puede usar una buena pantalla de carga si no es una descarga rápida, y posiblemente pueda detectar problemas de carga. Por supuesto, esto es solo para aplicaciones web que absolutamente deben usar JavaScript.

+0

Interesante idea. Pude ver que esto es útil para descargar muchas imágenes usando múltiples subdominios de CDN para evitar los problemas asincrónicos de los navegadores con contenido del mismo dominio. – endyourif

+0

Carga diferida: cargar la página en "trozos" puede ser una buena idea. –

1

Para ayudar a limitar la posibilidad de que alguien detenga la carga, es posible que desee comenzar con el perfil de su página, incluido el javascript, y ver dónde van las cosas.

Si algunas imágenes son lentas, pídales que se carguen después de que la página esté lista, con cierta información para informar al usuario de que vendrán las imágenes.

Luego puede priorizar lo que se hace, por ejemplo.

Pero, hasta que obtenga algunos números de rendimiento, todo lo que haga es adivinar, y eso es arriesgado, IMO.