SlideShare a Scribd company logo
1 of 16
 
11 tips para optimizar el uso de jQuery como framework de JavaScript
Optimizar los selectores utilizando el modelo "r2l" (right to left) $(“#id div.class2”) Sizzle es una librería creada por el mismo Resign que se especializa en la selección de elementos dentro del HTML, esta librería utiliza el modelo r2l, o sea busca primero los elementos secundarios (div.class2) y luego compara contra los elementos padres. Por lo tanto es mejor optimizar el segundo selector.
Utilizar live() en vez de click() $(elemento).live('click') Al llamar a un evento directamente este debe cumplir con el requisito obligatorio de ser leído por el DOM. El problema es que si éste es alterado por medio de otro factor y modifica la estructura del HTML inicial el evento queda "desactualizado". La mejor forma es tener un vigilante que esté al tanto de cada modificación y la almacene en una memoria interna.
Utilizar punteros para evitar conflictos Si algo ha hecho famoso a jQuery es la compatibilidad con distintos frameworks gracias al método noConflict() Por dentro crea un alias al signo dólar ($) con un nombre de referencia (jQuery)  
Ejemplo 1 jQuery.noConflict(); // Do something with jQuery jQuery("div p").hide(); Ejemplo 2 var j = jQuery.noConflict(); // Do something with jQuery j("div p").hide();
Ejemplo 3 jQuery.noConflict(); (function($) {    $(function() {     // more code using $ as alias to jQuery   }); })(jQuery); // other code using $ as an alias to the other library Usado por Drupal
Utilizar find() Para estructuras complejas o en las que no se tienen el control la mejor forma de ubicar elementos es con el find() ya que le da un plus al performance del selector.  var panels = $('div.panel', $('#content'));   utilizando find()   var panels=$('#content').find('div.panel');
Utilizar callbacks para sincronizar efectos $('#sliding').slideDown('slow', function(){          $('#sliding').slideUp('slow');   });           La mejor forma de lograr que los efectos estén bien sincronizados, además se podría extender más para abajo.
Método css El método css se encarga de darle estilos al elemento seleccionado. $('div.panel').css('color', 'red');   Pero si se desean aplicar muchos estilos lo mejor es recurrir al tag: $('<style type=&quot;text/css&quot;> div.class { color: red; } </style>').appendTo('head');   O bien utilizar el método addClass y setearla en la hoja de estilos.  
Sizzle compatible con Google Page Speed Con este plugin de firebug ya se puede testear los selectores utilizados en jQuery.
Agrupar en un mismo script una ejecución para varios eventos 2 tips en 1: jQuery es capaz de detectar los eventos que realizan una acción y lo contrario. $(&quot;p&quot;).bind(&quot;mouseenter mouseleave&quot;,       function(e){                                     $(this).toggleClass(&quot;mouse-over&quot;);       });
Detectar el navegador $.browser.safari $.browser.msie -> $.browser.version <= 6 $.browser.mozilla $.browser.opera $.browser.chrome
Utilizar las versiones comprimidas Para un mejor tiempo de carga en la página, el uso de librerías comprimidas (minifield) ayudará a reducir el peso del js. Muchos plugins poseen esa opción de descarga también.    También existen herramientas para comprimir nuestros propios scripts.
Aprender sobre los métodos menos conocidos Es parte del aprendizaje, aunque jQuery sea un framework en constante actualización, es muy importante leer sobre los distintos métodos que existen. Unos que pueden ayudar map(), slice(), stop(), queue(), dequeue(), prevAll() o inArray().
$(document).has('finished');

More Related Content

What's hot

Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
Gabriel Chertok
 
Introducción a la Programación con Javascript. Clase 3
Introducción a la Programación con Javascript. Clase 3Introducción a la Programación con Javascript. Clase 3
Introducción a la Programación con Javascript. Clase 3
xjordi
 

What's hot (14)

Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
 
While n
While nWhile n
While n
 
jQuery y ASP
jQuery y ASPjQuery y ASP
jQuery y ASP
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Esctructura basica-pagina-asp
Esctructura basica-pagina-aspEsctructura basica-pagina-asp
Esctructura basica-pagina-asp
 
Operaciones Aritméticas HTML5 & JavaScript (Ejercicio Practico)
Operaciones Aritméticas HTML5 & JavaScript (Ejercicio Practico)Operaciones Aritméticas HTML5 & JavaScript (Ejercicio Practico)
Operaciones Aritméticas HTML5 & JavaScript (Ejercicio Practico)
 
Lima hack 2011
Lima hack 2011Lima hack 2011
Lima hack 2011
 
La magia de jquery
La magia de jqueryLa magia de jquery
La magia de jquery
 
Introducción a la Programación con Javascript. Clase 3
Introducción a la Programación con Javascript. Clase 3Introducción a la Programación con Javascript. Clase 3
Introducción a la Programación con Javascript. Clase 3
 
AngularJS
AngularJSAngularJS
AngularJS
 
Taller de Jquery
Taller de JqueryTaller de Jquery
Taller de Jquery
 
Curso de Struts 2: Unidad Didáctica 03 Tags-Etiquetas
Curso de Struts 2: Unidad Didáctica 03 Tags-EtiquetasCurso de Struts 2: Unidad Didáctica 03 Tags-Etiquetas
Curso de Struts 2: Unidad Didáctica 03 Tags-Etiquetas
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 

Similar to 11 tips para optimizar el uso de jQuery como framework de JavaScript

Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
Ian Monge Pérez
 
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Fátima Casaú Pérez
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
deivit86
 
Seminario jquery, html5 y wicket
Seminario jquery, html5 y wicketSeminario jquery, html5 y wicket
Seminario jquery, html5 y wicket
Adrià Solé Orrit
 
Mallorca MUG: MongoDB y .NET
Mallorca MUG: MongoDB y .NETMallorca MUG: MongoDB y .NET
Mallorca MUG: MongoDB y .NET
Emilio Torrens
 

Similar to 11 tips para optimizar el uso de jQuery como framework de JavaScript (20)

Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Guia jQuery INCES Militar - Kurt Gude
Guia jQuery INCES Militar - Kurt GudeGuia jQuery INCES Militar - Kurt Gude
Guia jQuery INCES Militar - Kurt Gude
 
Taller de Grails
Taller de GrailsTaller de Grails
Taller de Grails
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
 
Seminario jquery, html5 y wicket
Seminario jquery, html5 y wicketSeminario jquery, html5 y wicket
Seminario jquery, html5 y wicket
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Creación de plugins con Grails
Creación de plugins con GrailsCreación de plugins con Grails
Creación de plugins con Grails
 
Mallorca MUG: MongoDB y .NET
Mallorca MUG: MongoDB y .NETMallorca MUG: MongoDB y .NET
Mallorca MUG: MongoDB y .NET
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibales
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibales
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibaless
 
Ajax
AjaxAjax
Ajax
 
Java Script Frame Works
Java Script Frame WorksJava Script Frame Works
Java Script Frame Works
 
jQuery
jQueryjQuery
jQuery
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

11 tips para optimizar el uso de jQuery como framework de JavaScript

  • 1.  
  • 2. 11 tips para optimizar el uso de jQuery como framework de JavaScript
  • 3. Optimizar los selectores utilizando el modelo &quot;r2l&quot; (right to left) $(“#id div.class2”) Sizzle es una librería creada por el mismo Resign que se especializa en la selección de elementos dentro del HTML, esta librería utiliza el modelo r2l, o sea busca primero los elementos secundarios (div.class2) y luego compara contra los elementos padres. Por lo tanto es mejor optimizar el segundo selector.
  • 4. Utilizar live() en vez de click() $(elemento).live('click') Al llamar a un evento directamente este debe cumplir con el requisito obligatorio de ser leído por el DOM. El problema es que si éste es alterado por medio de otro factor y modifica la estructura del HTML inicial el evento queda &quot;desactualizado&quot;. La mejor forma es tener un vigilante que esté al tanto de cada modificación y la almacene en una memoria interna.
  • 5. Utilizar punteros para evitar conflictos Si algo ha hecho famoso a jQuery es la compatibilidad con distintos frameworks gracias al método noConflict() Por dentro crea un alias al signo dólar ($) con un nombre de referencia (jQuery)  
  • 6. Ejemplo 1 jQuery.noConflict(); // Do something with jQuery jQuery(&quot;div p&quot;).hide(); Ejemplo 2 var j = jQuery.noConflict(); // Do something with jQuery j(&quot;div p&quot;).hide();
  • 7. Ejemplo 3 jQuery.noConflict(); (function($) {   $(function() {     // more code using $ as alias to jQuery   }); })(jQuery); // other code using $ as an alias to the other library Usado por Drupal
  • 8. Utilizar find() Para estructuras complejas o en las que no se tienen el control la mejor forma de ubicar elementos es con el find() ya que le da un plus al performance del selector. var panels = $('div.panel', $('#content'));   utilizando find()   var panels=$('#content').find('div.panel');
  • 9. Utilizar callbacks para sincronizar efectos $('#sliding').slideDown('slow', function(){          $('#sliding').slideUp('slow');   });          La mejor forma de lograr que los efectos estén bien sincronizados, además se podría extender más para abajo.
  • 10. Método css El método css se encarga de darle estilos al elemento seleccionado. $('div.panel').css('color', 'red');   Pero si se desean aplicar muchos estilos lo mejor es recurrir al tag: $('<style type=&quot;text/css&quot;> div.class { color: red; } </style>').appendTo('head');   O bien utilizar el método addClass y setearla en la hoja de estilos.  
  • 11. Sizzle compatible con Google Page Speed Con este plugin de firebug ya se puede testear los selectores utilizados en jQuery.
  • 12. Agrupar en un mismo script una ejecución para varios eventos 2 tips en 1: jQuery es capaz de detectar los eventos que realizan una acción y lo contrario. $(&quot;p&quot;).bind(&quot;mouseenter mouseleave&quot;,       function(e){                                     $(this).toggleClass(&quot;mouse-over&quot;);       });
  • 13. Detectar el navegador $.browser.safari $.browser.msie -> $.browser.version <= 6 $.browser.mozilla $.browser.opera $.browser.chrome
  • 14. Utilizar las versiones comprimidas Para un mejor tiempo de carga en la página, el uso de librerías comprimidas (minifield) ayudará a reducir el peso del js. Muchos plugins poseen esa opción de descarga también.    También existen herramientas para comprimir nuestros propios scripts.
  • 15. Aprender sobre los métodos menos conocidos Es parte del aprendizaje, aunque jQuery sea un framework en constante actualización, es muy importante leer sobre los distintos métodos que existen. Unos que pueden ayudar map(), slice(), stop(), queue(), dequeue(), prevAll() o inArray().