2010-12-08 34 views
5

¿Es el proceso de encuadernación, o el hecho de tener muchas cosas atadas, que es el principal problema de atar más eventos de los necesarios?¿Qué hace que el encuadernado sea lento?

Probablemente la respuesta sea ambas, pero ¿en qué medida?

Además, supongo que los eventos de mouseover son más caros que los eventos de clic, ya que deben verificarse con mayor frecuencia. ¿Derecha?

Respuesta

2

La unión de eventos embargo, toma tiempo, por lo que si usted vincula, por ejemplo, un centenar de eventos, la interacción del usuario con el navegador será "sin incidentes" durante el tiempo dedicado a vincular todos esos eventos.

Cuantos más controladores de eventos en la página, más larga es la cola de eventos , más lenta es la interfaz de usuario.

@Juan resume muy bien la delegación de eventos en una sola oración en su respuesta, como una alternativa a los eventos vinculantes para muchos elementos secundarios.

+0

"cuanto más larga sea la cola de eventos" <- Cuantos más enlaces, más procesamiento se requiere para identificar al individuo sobre el que se actúa? ¿Esa es la idea? – Matrym

+0

Creo * que es la idea * general *, teniendo en cuenta que diferentes navegadores implementan el manejo de eventos de diferentes maneras. Eche un vistazo a: http://stackoverflow.com/questions/282245/what-is-the-event-precedence-in-javascript – karim79

1

Por lo que he notado, cuantos más oyentes agregues, más lenta será la interfaz de usuario. La delegación de eventos usa menos memoria; en lugar de un oyente para cada nodo secundario, tiene un único manejador más inteligente en un elemento primario. Menos memoria, menos controladores de unión y separación.

eventos Mouseover no son necesariamente más caros, no es memoria adicional, es sólo que su controlador está dirigido muy a menudo, por lo que necesita para asegurarse de que es código de luz

Cuestiones relacionadas