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

JavaScript App Development

Rob Tarr
September 09, 2011

JavaScript App Development

This is from a presentation I gave at our local Web Dev Meetup in Dayton, OH.

Rob Tarr

September 09, 2011
Tweet

More Decks by Rob Tarr

Other Decks in Technology

Transcript

  1. Google themselves an a test to see if slowing down

    the search process effected users’ behaviour. They essentially made Google slow down vey marginally for a set period of time. They had two groups: a control group, who use Google as normal, and a test group. The test group’s searching habits were monitored over a period of 6 weeks while delays between 100 – 400 milliseconds were applied to their search environment. The test simply showed that the longer the delay was, the fewer searches people were likely to do. http://www.distilled.net/blog/seo/site-speed-for-dummies-pat1/
  2. Resources Twitter twitter.com/ A constant stream of new ideas and

    experiments... @jeresig @paul_irish @commondream @jashkenas @BrendanEich @cowboy @codylindley @rem
  3. Libraries/Frameworks $(“.container a”).live(“click”, function(e) { // do stuff here });

    jQuery $(“.container”).delegate(“a”, “click”, function(e) { // do stuff here });
  4. Libraries/Frameworks $(“.container a”).live(“click”, function(e) { // do stuff here });

    jQuery $(“.container”).delegate(“a”, “click”, function(e) { // do stuff here }); BAD GOOD
  5. Libraries/Frameworks $(“.page .container a”).bind(“click”, function(e) { // do stuff here

    }); jQuery $(“.page”).find(“.container”).find(“a”).bind(“click”, function(e) { // do stuff here });
  6. Libraries/Frameworks $(“.page .container a”).bind(“click”, function(e) { $(this).addClass(‘clicked’); $(this).data(‘clickCounter’, $(this).data(‘clickCounter’) +

    1); }); jQuery $(“.page .container a”).bind(“click”, function(e) { var $this = $(this); $this.addClass(‘clicked’); $this.data(‘clickCounter’, $this.data(‘clickCounter’) + 1); });
  7. Libraries/Frameworks $(“.page .container a”).bind(“click”, function(e) { $(this).addClass(‘clicked’); $(this).data(‘clickCounter’, $(this).data(‘clickCounter’) +

    1); }); jQuery $(“.page .container a”).bind(“click”, function(e) { var $this = $(this); $this.addClass(‘clicked’); $this.data(‘clickCounter’, $this.data(‘clickCounter’) + 1); }); BAD GOOD
  8. Libraries/Frameworks <html lang=”en” class="js flexbox canvas canvastext webgl no-touch geolocation

    postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths"> modernizr
  9. Libraries/Frameworks LabJS labjs.com/ “The core purpose of LABjs is to

    be an all-purpose, on-demand JavaScript loader...”
  10. Libraries/Frameworks <script id="beer-list-tpl" type="text/x-template"> <a href="#" class="fav" title="favorite" alt="favorite">&#x2605;</a> <div

    class="beer"> <span class="name">{{name}}</span> {{#if brewery}} <span class="brewery">{{brewery}}</span> {{/if}} </div> <a href="#" class="delete" title="recycle">&#x267A;</a> </script> handlebars