5

Tengo una aplicación JS-heavy y funciona lentamente en IE. Estoy a punto de pasar alrededor de una semana optimizando para IE, y me gustaría alguna dirección sobre cosas que probar.¿Cómo puedo optimizar para IE?

yo encontramos este hilo referencia Drip, que parece útil:

IE and Memory accumulation in Javascript

estoy en busca de consejos como: "el uso de bucles en lugar de $ .Cada", así como las mejores prácticas arquitectónicas que yo puede no estar usando.

Bibliotecas que estoy usando:

cosas ya estoy haciendo:

  • usar bucles en lugar de $ .Cada
  • contextos de almacenamiento en caché para jQuery que se hace referencia comúnmente DOM elementos
  • edificio HTML utilizando Array.join() vs. concatenación de cadenas

¿Alguna sugerencia?

Gracias!

+1

* "construcción de HTML usando Array.join() vs. concatenación de cadenas" * Una buena idea en casi todas las implementaciones de JavaScript que he visto. –

+1

¿Qué versión de IE es lenta? La ejecución de javascript en v8 es considerablemente más rápida que v7. La versión 8 es aún más lenta que FFox. Ten una meta clara de lo que quieres lograr, porque probablemente hay mucho que puedes hacer antes de llegar a la pared con IE, si todavía es demasiado lento, entonces tendrás que buscar optimizar de otra manera. – slugster

+0

Lento en IE7 e IE8 (estoy ignorando IE6). Obviamente, IE8 es mejor. ¿De qué otra manera podría optimizar? Supongo que es el JavaScript el que hace las cosas más lentas y, desafortunadamente, la aplicación requiere una gran cantidad de JS. Tengo curiosidad sobre cómo Google hace que sus aplicaciones JS se ejecuten tan bien como lo hacen en IE. – marclar

Respuesta

5

No vaya a ciegas a través de su código de hacer mejoras triviales como cambiar $.each() bucles a los bucles for; eso es realmente inútil y algún día lo lamentarás. Use un generador de perfiles porque es una buena apuesta que la mayoría de sus problemas se deriven de un número muy pequeño de piezas de código inesperadamente malas.

Algo así como dynaTrace ajax edition son invaluables en situaciones como esta.

+0

Mmmm. . . Dudo que lamentaría tales cambios "triviales", aunque su punto más importante está tomado. Sin embargo, tengo curiosidad acerca de los cuellos de botella específicos de IE si es que conoces alguno. Y dicho eso, ciertamente buscaré * cuellos de botella * causados ​​por el desarrollador en el camino. – marclar

+0

Bien haciendo al menos algunas de esas cosas puede deshacerse de algún "buen código" valioso. Un bucle escrito con '$ .each()' que se ejecuta una vez que se carga la página y se repite a través de 5 cosas realmente no está desacelerando nada. Busque código que realice innecesariamente búsquedas de jQuery realmente costosas, posiblemente una y otra vez. – Pointy

2

Si se trata de IE6/7 y la aplicación de "una página", entonces minimice la manipulación del dom, es decir. en lugar de hacer un gran reemplazo que cientos de pequeños cambios en un ciclo.

+0

Sí - haciendo eso; gracias, Heikki. – marclar

Cuestiones relacionadas