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

Performance em jQuery Apps

Performance em jQuery Apps

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