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

Show me the assets

Show me the assets

A talk for codeHarbour about how to speed up your websites

lukefrake

May 08, 2014
Tweet

Other Decks in Technology

Transcript

  1. @lukefrake Amazon 100 milliseconds delay Conversion down 1% $745 million

    Google 0.5 additional seconds decreased clicks by 20% Thursday, 8 May 14
  2. @lukefrake Amazon 100 milliseconds delay Conversion down 1% $745 million

    Google 0.5 additional seconds decreased clicks by 20% Etsy 160k to a page 12% bounce rate on mobile Thursday, 8 May 14
  3. @lukefrake Amazon 100 milliseconds delay Conversion down 1% $745 million

    Google 0.5 additional seconds decreased clicks by 20% Waiting for pages to load is really boring Etsy 160k to a page 12% bounce rate on mobile Thursday, 8 May 14
  4. @lukefrake Amazon 100 milliseconds delay Conversion down 1% $745 million

    Google 0.5 additional seconds decreased clicks by 20% Waiting for pages to load is really boring Etsy 160k to a page 12% bounce rate on mobile Me Thursday, 8 May 14
  5. @lukefrake Amazon 100 milliseconds delay Conversion down 1% $745 million

    Google 0.5 additional seconds decreased clicks by 20% Waiting for pages to load is really boring Etsy 160k to a page 12% bounce rate on mobile Everyone Thursday, 8 May 14
  6. @lukefrake 500ms 1375ms 2250ms 3125ms 4000ms 1 2 3 4

    5 6 7 8 9 10 Page Load Time As Bandwidth Increases (RTT for 60ms) http://bit.ly/1rNCOlC Thursday, 8 May 14
  7. @lukefrake 500ms 1375ms 2250ms 3125ms 4000ms 1 2 3 4

    5 6 7 8 9 10 Page Load Time As Bandwidth Increases (RTT for 60ms) 500ms 1375ms 2250ms 3125ms 4000ms 240ms 200pms 160ms 120ms 80ms 40ms 0ms Page Load Time As RTT Decreases (Bandwidth at 5mbps) http://bit.ly/1rNCOlC Thursday, 8 May 14
  8. @lukefrake GIF - 1px or animation PNG - Small images

    or transparent Hard & fast rules Thursday, 8 May 14
  9. @lukefrake GIF - 1px or animation PNG - Small images

    or transparent JPG - Photo quality, no transparency Hard & fast rules Thursday, 8 May 14
  10. @lukefrake Optimize your images 6000px x 2000px 399px x 266px

    21.7mb 119kb 99.5% Saving Thursday, 8 May 14
  11. @lukefrake Move them into CSS do websites need to look

    exactly the same in every browser? Thursday, 8 May 14
  12. @lukefrake Turn them into base64 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0 b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZl cnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8v RFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQv c3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDov

    L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCIgdmll d0JveD0iMCAwIDk2IDk2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA5NiA5Njsi IHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZD0iTTQ4LDBDMjEuNDksMCwwLDIxLjQ5LDAs NDhjMCwyNi41MTEsMjEuNDksNDgsNDgsNDhzNDgtMjEuNDg5LDQ4LTQ4Qzk2LDIxLjQ5LDc0LjUx LDAsNDgsMHogTTU5LjM2OSwzMy4xN2gtNy4yMTcNCgljLTAuODU0LDAtMS44MDUsMS4xMjEtMS44 MDUsMi42MjN2NS4yMTFoOS4wMjF2Ny40MjhoLTkuMDIxdjIyLjMwNmgtOC41MlY0OC40MzJoLTcu NzIzdi03LjQyOGg3LjcyM3YtNC4zNzINCgljMC02LjI2OSw0LjM1Mi0xMS4zNjgsMTAuMzI0LTEx LjM2OGg3LjIxN1YzMy4xN3oiLz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxn Pg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4N CjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8 L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K http://bit.ly/1nyKiJv Thursday, 8 May 14
  13. @lukefrake Turn them into base64 <img alt="" src="data:image/svg+xml;base64, Encoded string"

    /> background-image: url(data:image/svg+xml;base64,Encoded string); http://bit.ly/1nyKiJv Thursday, 8 May 14
  14. @lukefrake CDN Content delivery network They had it all along

    http://bit.ly/1m0XSTU Thursday, 8 May 14
  15. @lukefrake <script type="text/javascript"> function downloadJSAtOnload() { var element = document.createElement("script");

    element.src = "defer.js"; document.body.appendChild(element); } if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false); else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload); else window.onload = downloadJSAtOnload; </script> http://bit.ly/1cDySO9 Thursday, 8 May 14
  16. @lukefrake <html> <head> <style> main{ ... } aside{ ... }

    </style> <script> // I would hope there is none here </script> </head> <body> <main> Main Content </main> <aside> Sidebar </aside> <script> function run_after_onLoad() { Load('stylesheet', 'theRest.css') Load('javascript', 'theRest.js') } </script> </body> </html> Thursday, 8 May 14