Tengo una cuadrícula y hay una columna que contiene <a>
etiqueta de ancla con algo de información adicional en la etiqueta <data-..>
y tiene un nombre de clase <class='myspeciallink'>
. Y en mi discreta secuencia de comandos JS, selecciono todos los elementos con ese nombre de clase y aplico live('click')
. Necesito que sea live() porque la grilla se genera en el tiempo de ejecución.en vivo ('clic') y rendimiento
¿Qué sucede dentro del controlador live('click')
? Utilizo esos datos adicionales y agrego un <div>
a la página según esos datos. Que a su vez solía generar el diálogo jQuery UI. Funciona muy bien en mi computadora.
¡Pero! ¿Cómo podría funcionar eso en el mundo real? ¿Debería preocuparme por posibles implicaciones de rendimiento? Siento que la aplicación de live() en más de una docena de elementos instantáneamente
afectaría el rendimiento. Especialmente con un gestor bastante complicado como el mío: necesita obtener los datos, analizar los datos, crear un div, aplicar un cuadro de diálogo, etc.
¿Eso huele como un mal diseño? ¿Podría sugerir un enfoque diferente o mis preocupaciones son infundadas? ¿Puedo utilizar algún tipo de herramienta de creación de perfiles para encontrar los cuellos de botella en mi javascript?
UPD: Todavía nadie sugirió ninguna herramienta de creación de perfiles. Las herramientas Firebug y Chrome Dev son buenas, pero tal vez hay algo aún mejor.
que no es necesario que para ser '.live()'. Necesitas que sea '.delegate()'. –
Tiene razón, no necesito que se propague la propagación. – Agzam
Pero en mi caso solo puedo hacer '$ ("cuerpo"). Delegar (". Myspeciallink", "clic"' ... Porque este tipo de enlaces pueden colocarse en cualquier lugar de la página – Agzam