Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performance em jQuery Apps

Performance em jQuery Apps

Avatar for Davidson Fellipe

Davidson Fellipe

April 24, 2012
Tweet

More Decks by Davidson Fellipe

Other Decks in Programming

Transcript

  1. sobre mim • técnico em eletrônica • engenheiro da computação

    pela upe • desenvolvedor na globo.com • quase mestrando em informática na puc-rio • @davidsonfellipe
  2. ...pois alguns metodos podem ser mais faceis do que você

    imagina size: function() {return this.length;},
  3. Tente compactar todos os script em apenas 1 arquivo YUI

    Compressor Muitos browsers não estão aptos a processar mais que 1 script paralelamente
  4. 1) $parent.find(‘.child’).show(); //+ rapida 2) $(‘.child", $parent).show(); //~5-10% + lenta

    3) $('.child', $('#parent')).show(); //~23% + lenta 4) $parent.children(".child’).show(); //~50% + lenta 5) $(‘#parent > .child’).show(); //~70% + lenta 6) $(‘#parent .child’).show(); //~77% + lenta http://jsperf.com/jquery-selectors-context/2 formas de seleção
  5. for( i = 0; i < 5000; i++){ $("body").css("background-color", "#f00");

    $("body").addClass("fonte-maior"); } //acesso ao DOM várias vezes: 197ms var $body = $("body"); for( i = 0; i < 5000; i++){ $body.css("background-color", "#f00"); $body.addClass("fonte-maior"); } //cacheando o seletor: 158ms
  6. var $body = $("body"); for(i=0;i<10000;i++){ $body.css("background-color", "#f00"); $body.addClass("fonte-maior"); } //sem

    chaining: 325ms var $body = $("body"); for(i=0;i<10000;i++){ $body.css("background-color", "#f00").addClass("fonte-maior"); } //com chaining: 308ms
  7. var $contexto = $(".feed"); for(i=0;i<10000;i++){ $(".materia-titulo", $contexto).css("background-color", "#f00"); } //com

    contexto: 1883ms for(i=0;i<10000;i++){ $(".materia-titulo").css("background-color", "#f00"); } //sem contexto: 2381ms