On Github una / slides--lead-dev
an action, task, or operation, seen in terms of how successfully it was performed
dictionary.com definition measure of succes = crux of our jobjpg
png-8
png-24
gif
svg
size: 109kb
size: 49kb
size: 109kb
size: 49kb
Pull your files into one to minimize requests.
Images
CSS
@import 'vendors/bootstrap'; @import 'vendors/jquery-ui'; @import 'utils/variables'; @import 'utils/functions'; @import 'utils/mixins'; @import 'utils/placeholders'; @import 'base/reset'; @import 'base/typography'; @import 'layout/navigation'; @import 'layout/grid'; @import 'layout/header'; @import 'layout/footer'; @import 'layout/sidebar'; @import 'layout/forms'; @import 'components/buttons'; @import 'components/carousel'; @import 'components/cover'; @import 'components/dropdown'; @import 'pages/home'; @import 'pages/contact'; @import 'themes/theme'; @import 'themes/admin';
Javascript
var concat = require('gulp-concat'); gulp.task('scripts', function() { gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js']) .pipe(concat('all.js')) .pipe(gulp.dest('./dist/')) });
Make those files as small as possible.
Images
CSS
body,fieldset,form,html,legend,li,ol,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p{margin-top:0}fieldset,img{border:0}legend{color:#000}li{list-style:none}sup{vertical-align:text-top}sub{vertical-align:text-bottom}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;vertical-align:top;font-weight:400}input,select,textarea{font-size:110%;line-height:1.1}abbr,acronym{border-bottom:.1em dotted;cursor:help}*,:after,:before{margin:0;padding:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;height:100%}body{font-family:"Carrois Gothic",sans-serif;font-weight:400;padding:2em 10% 4em;max-width:1000px;margin:0 auto;background:#eef0f0;min-height:100%;position:relative}h1,h2,h3{font-family:"Fjalla One",serif;font-weight:700}h1{font-size:3.5em;margin-bottom:.25em;color:#5ab1bb}h2{color:#4e6766;font-family:"Carrois Gothic",sans-serif;text-transform:uppercase;font-size:.9em;letter-spacing:2px}
Javascript
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.
The intermediate steps between receiving the HTML, CSS, and JavaScript bytes and the required processing to turn them into rendered pixels
Before we talk about how to load your js, if you can avoid JavaScript or replace it with CSS, do that if not, you need to think about the "critical rendering path" This is all about getting your priorities in orderand what the user will see first By optimizing the critical rendering path we can significantly improve the time to first render of our pages. optimize the delivery of content, and defer the restManage How Your Scripts load with Async & Defer.
< head> <link href="path/to/mystylesheet.css" rel="stylesheet"> < /head>
Check Your Performance
some hippie math that tells you how fast it "feels" to load your website.
- Dave Rupertvar gulp = require('gulp'); var psi = require('psi'); var site = 'http://www.html5rocks.com'; var key = ''; gulp.task('mobile', function () { return psi(site, { // key: key nokey: 'true', strategy: 'mobile', }, function (err, data) { console.log(data.score); console.log(data.pageStats); }); }); gulp.task('desktop', function () { return psi(site, { nokey: 'true', // key: key, strategy: 'desktop', }, function (err, data) { console.log(data.score); console.log(data.pageStats); }); }); gulp.task('default', ['mobile']);
gulp
URL: https://www.google.com/?gws_rd=ssl Score: 92 Strategy: desktop Number Resources | 13 Number Hosts | 5 Total Request | 2.62 kB Number Static Resources | 9 Html Response | 116.9 kB Image Response | 46.02 kB Javascript Response | 879.68 kB Other Response | 1.76 kB Number Js Resources | 5 | Avoid Landing Page Redirects | 7 Enable Gzip Compression | 0 Leverage Browser Caching | 0 Main Resource Server Response Time | 0 Minify Css | 0 Minify HTML | 0 Minify Java Script | 0.27 Minimize Render Blocking Resources | 0 Optimize Images | 0 Prioritize Visible Content | 0