I piense que que los controladores de eventos se procesan en el orden en que están registrados. (¿Es eso correcto?) Si ese es el caso, entonces si adjuntaré un controlador de eventos al comienzo de mi script, ¿puedo estar absolutamente seguro de que se disparará antes que otros manejadores conectados al mismo evento? Además, ¿los espacios de nombres de eventos tienen algún efecto sobre esto? ¿Los controladores de eventos se disparan en serie (uno termina antes del siguiente) o en paralelo?Asegúrese de que la orden de ejecución del controlador de eventos jQuery
Quiero hacer esto porque mi script se basa en el tamaño de la ventana gráfica, que cambia en el evento de cambio de tamaño, y tengo que buscarlo constantemente. En lugar de llamar al $(window).width()
repetidamente en cada una de las funciones de mi controlador, me gustaría poner un controlador en la parte superior de mi script que guarda $(window).width()
en una propiedad del objeto en cada cambio de tamaño. Luego en los controladores posteriores puedo acceder a la propiedad y estar seguro de que es la medición más reciente.
Sé que podría crear un evento personalizado que se active tan pronto como se realice el cálculo y adjuntar controladores posteriores al evento personalizado. Pero no quisiera hacer eso porque necesito mantener la interoperabilidad con los complementos que vienen después del mío que también pueden estar vinculados al evento de cambio de tamaño.
Consulte http://stackoverflow.com/questions/290254/how-to-order-events-bound-with-jquery – ustun
¿Está perdiendo un rendimiento significativo en '$ (window) .width()'? Si no, ¿para qué molestarse? Simplemente estará introduciendo una dependencia frágil en el estado de una variable global. – millimoose
@Inerdial Necesito llamarlo y algunos otros cálculos como 20 veces. Creo que marcará la diferencia. – ryanve