fast and responsive images (velocity)
DESCRIPTION
Responsive design is taking the world by a storm and every team is converting their site to be on mobile or preparing to do that soon. Few people however realize performance implications of this new approach to web development and one of the issues is images which represent more then 60% of all network payload and can congest wireless networks with data unnecessary for display on naturally smaller screens than desktop. This issue gave birth to various Responsive Images techniques which are used to display “just right” size of the image for user’s device. There are several aspects of the issue that need to be considered, from formats and resolutions to content management and implementation code. When done wrong, performance can degrade much worse then original “desktop” approach, but with a few key features implemented right, can reduce payload size dramatically providing improved user experience.TRANSCRIPT
Fast & ResponsiveImages
O'Reilly Velocity NY September 17, 2014
Sergey Chernyshev
Organize NY Web Perf
Tech. Dir. Web Sys. & App. Dev. at truTV / Turner
@SergeyChe
SergeyChernyshev.com
Responsive Design & Images
May 25, 2010 http://alistapart.com/article/responsive-web-design/
Image Responsiveness
Size
"Art direction"
Format / Encoding
Bandwidth
Size in Pixels (resolution)
Size in Kb
on the wire
in memory + decoding
"Why we need responsive images" part I & part II by @TKadlec
1920px 320px
Size in Pixels (density)Multiply by 1 - 3x
Kindle Fire HDX - 2560x1600
iPhone 6 - 1704x960
iPhone 5 - 1136x640
iPad 3, 4, Air - 2048x1536
MacBook Pro Retina - 2880x1800
http://dpi.lv/ - DPI Love by Lea Verou
Art Direction
Encoding: JPEG compression
Lossy: 1-100 quality setting
Lossless: removes metadata
100% 90% 80% 70% 60%
50% 40% 30% 20% 10%
100% 90% 80% 70% 60%
50% 40% 30% 20% 10%
Encoding: Best Format
JPEG
WebP Chrome23+ Opera 12.1+
JPEG XR IE10+
PNG
Gif -> PNG
PNG -> JPEG
SVG
Web Site Optimization With Browser-Specific Image Formats calendar.perfplanet.com
BandwidthVary compression level
Requires bandwidth detection
Just plain hard
Progressive JPEGs FTW!by @PatMeenan
Alternative: use progressive JPEG
Integration: CMS Workflow
Edit Optimize Deploy
Integration: Image ServiceAdaptive Images
https://github.com/MattWilcox/Adaptive-Images
SenchaSRC, LiquidPixels
<img src="http://src.sencha.io/320/200/http://a.com/b.jpg" width="320" height="200" >
<picture>, srcset, sizes
Now part of HTML spec
In upcoming Chrome, Firefox and Opera, "under consideration" in IE
On The Page<?php img('/path/to/original.jpg') ?>
8 Guidelines and 1 Rule for Responsive Images http://blog.cloudfour.com/8-guidelines-and-1-rule-for-responsive-images/
Picturefill v2 by Scott Jehlhttps://github.com/scottjehl/picturefill
Integration: Automationmod_pagespeed / ngx_pagespeed filters
• rewrite_images
• inline_images
• recompress_images
• convert_gif_to_png, convert_png_to_jpeg
FEO from Akamai, Radware and others
0.000
0.400
0.800
1.200
1.600
Small Medium Large
1.454
1.233
0.407
Homepage Image Sizes (Mb)
0.000
1.000
2.000
3.000
4.000
Small Medium Large Source
3.818
1.4541.233
0.407
Homepage Image Sizes (Mb)
Thank you!
Sergey Chernyshev !
@SergeyChe !
@PerfPlanet !