tutorial observablearray knockout change knockout.js performance knockout-mapping-plugin

knockout.js - observablearray - Ajuste del rendimiento de una aplicación nocaut: directrices para mejorar los tiempos de respuesta



ko observablearray (3)

Creo que el mapeo también puede ayudarme a seguir esta prueba y ver la diferencia entre el uso del mapa jquert, el mapa de knockout-map-vs-jquery-map , el mapa de knockout-map-vs-jquery-map

Cuando comienzas a usar mapas de gran escala, el mapeo de Árboles Observables se vuelve crucial

Tengo una página grande y compleja que depende en gran medida de knockout.js. El rendimiento comienza a ser un problema, pero examinar el stack de llamadas y tratar de encontrar los cuellos de botella es un verdadero desafío.

Noté en otra pregunta ( Knockout.js - entendiendo foreach y con ) que la respuesta aceptada tiene el comentario:

... y sugiero no usar with alto rendimiento que es necesario debido a la sobrecarga ...

Asumiendo que la declaración es verdadera, esto es algo realmente útil de saber y no he encontrado una fuente para dichos consejos de rendimiento.

Por lo tanto, mi pregunta es:

¿Hay pautas generales / consejos principales que pueda aplicar para ayudar al rendimiento de mi aplicación antes de profundizar en el ajuste de rendimiento clásico?


Creo que sería demasiado diseñar los consejos que tengo en mente en una respuesta.

Comencé una serie de publicaciones en el blog sobre este tema. La primera publicación está here .

Esta publicación describe un poco cómo funciona if/with trabajo (copia a los niños como su plantilla y vuelve a representar usando la plantilla cada vez que se activa el enlace) y explica cómo estas encuadernaciones pueden causar repeticiones mucho más a menudo de lo esperado.

Actualizaré esta respuesta con publicaciones futuras.


Una de las trampas más grandes que he encontrado (y que no se ha visto en otra parte) es que Knockout vuelve a evaluar cada enlace en un elemento cada vez que se produce un enlace en el elemento .

Normalmente no es un gran problema, pero para enlaces que tienden a ser caros (por ejemplo, template ), puede crear problemas de rendimiento significativos.

Adjunte enlaces que procesen content / children ( template , foreach , etc.) a un elemento virtual (utilizando la sintaxis de flujo de control sin contenedor ) si no son el único enlace del elemento.