{"id":1892,"date":"2017-01-08T07:23:32","date_gmt":"2017-01-08T07:23:32","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=1892"},"modified":"2022-12-13T15:54:08","modified_gmt":"2022-12-13T10:24:08","slug":"page-load-optimization-by-progressive-image-loading-like-medium","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/","title":{"rendered":"Page Load Optimization by Progressive Image Loading (like Medium)"},"content":{"rendered":"\n<p>While working on the project we came across the situation where the client told us the&nbsp;<b>page load time<\/b>&nbsp;of our home page is&nbsp;<b>very high<\/b>&nbsp;and we must do&nbsp;anything in the world&nbsp;in order to reduce this load time as it is the heart of our website.<\/p>\n\n\n\n<p>As a result, we moved to some open sources tools to analyze our web page&nbsp;<a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/\">Google Page Speed<\/a>,&nbsp;<a href=\"https:\/\/gtmetrix.com\/\">GT Metrix<\/a>,&nbsp;<a href=\"https:\/\/www.webpagetest.org\/\">Web Page Test<\/a>&nbsp;to name a few.<\/p>\n\n\n\n<p>Then we&nbsp;<b>found the culprit<\/b>!&nbsp;They were the high-quality images (which were apple of our client&#8217;s eye) on the page. And it contributed more than&nbsp;<b>85%<\/b>&nbsp;of the load time. Then we got back to the client saying we need to compress images on the page, and the client said a&nbsp;<b>&#8220;BIG NO&#8221;<\/b>&nbsp;and told us to find a solution while maintaining the high-quality resolution of images as it is!<\/p>\n\n\n\n<p>In order to describe your whole situation to you, we decided to create a simple homepage having all the images with resolution greater than&nbsp;<b>1024 x 768<\/b> pixels. We measured load time using simple&nbsp;<a href=\"https:\/\/jquery.com\/\">JQuery<\/a>. See below for code.<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/AnkurVyas-BTC\/9649f88f13e0fda6d4f17b9a810b91b5.js\"><\/script><\/p>\n\n\n\n<p>This code just initializes&nbsp;<b>timerStart<\/b>&nbsp;variable with current time and at then calculates the time difference initially and after window load completes.<\/p>\n\n\n\n<p>This is how our Sample Home Page page looks like.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/sample-home-page-774x1024.png\" alt=\"Sample Home Page\" class=\"wp-image-13911\" width=\"581\" height=\"768\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/sample-home-page-774x1024.png 774w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/sample-home-page-227x300.png 227w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/sample-home-page-768x1016.png 768w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/sample-home-page.png 1000w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><figcaption>Sample Home Page (Thanks google.com for the images)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>It has a simple&nbsp;<a href=\"https:\/\/v4-alpha.getbootstrap.com\/components\/carousel\/\">bootstrap carousel<\/a>&nbsp;and&nbsp;<a href=\"http:\/\/getbootstrap.com\/components\/#thumbnails\">bootstrap thumbnails<\/a>. Simple isn&#8217;t it!<\/p>\n\n\n\n<p>We have deployed it on&nbsp;<a href=\"https:\/\/www.heroku.com\/\">heroku<\/a>!<\/p>\n\n\n\n<p>( While on page Press \u2318 + Shirt +R \/ Ctrl + Shift + R i.e.&nbsp;<b>hard refresh<\/b>&nbsp;)<\/p>\n\n\n\n<p>Sample Home Page Link:\u00a0https:\/\/boiling-meadow-22449.herokuapp.com\/<\/p>\n\n\n\n<p>Page Load Time (cache disabled):&nbsp;<b>16 seconds<\/b>&nbsp;(shown in red in below image)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"293\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time.png\" alt=\"Page Load Time\" class=\"wp-image-13912\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time.png 692w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time-300x127.png 300w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><figcaption>Normal Page Load Time<\/figcaption><\/figure>\n<\/div>\n\n\n<p>After reading many blogs on image loading we found these image rendering techniques interesting.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"https:\/\/jmperezperez.com\/medium-image-progressive-loading-placeholder\/\"><b>Medium Progressive Image Loading<\/b><\/a><\/li><li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Lazy_loading\"><b>Lazy Loading<\/b><\/a><\/li><li><a href=\"https:\/\/code.facebook.com\/posts\/991252547593574\/the-technology-behind-preview-photos\/\"><b>Facebook&#8217;s 200 bytes Technique<\/b><\/a><\/li><\/ol>\n\n\n\n<p>We implemented&nbsp;<b><i>Lazy Loading<\/i><\/b>&nbsp;and&nbsp;<b><i>Progressive Image Loading<\/i><\/b>&nbsp;only.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lazy Loading Implementation<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><b><i>Delay loading of images in long web pages. Images outside of viewport won&#8217;t be loaded before user scrolls to&nbsp;them.<\/i><\/b><\/p><\/blockquote>\n\n\n\n<p>We used&nbsp;<a href=\"https:\/\/github.com\/tuupola\/jquery_lazyload\">JQuery LazyLoad<\/a>, you can find&nbsp;<a href=\"https:\/\/github.com\/tuupola\/jquery_lazyload#how-to-use\">setup instructions here<\/a>. We have created sample JSFiddle for it below.<\/p>\n\n\n\n<p><script async=\"\" src=\"\/\/jsfiddle.net\/ankurvy1\/tn9afmxr\/embed\/\"><\/script><\/p>\n\n\n\n<p>After adding the Lazy Loading there was slight difference in load time also the page appeared&nbsp;<b>smoother<\/b>&nbsp;than before. But the window load time was still busy till all the images on the page loaded!<\/p>\n\n\n\n<p><i>Sample Home Page with Lazy Loading:<\/i>\u00a0https:\/\/boiling-meadow-22449.herokuapp.com\/index_lazy<\/p>\n\n\n\n<p><i>Page Load Time(cache disabled):&nbsp;<b>14 seconds (Smoothing Effect)<\/b><\/i><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"303\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time-with-lazy-loading.png\" alt=\"Page Load Time - Lazy Loading Implementation\" class=\"wp-image-13913\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time-with-lazy-loading.png 685w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-time-with-lazy-loading-300x133.png 300w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Progressive Image&nbsp;Loading<\/h3>\n\n\n\n<p>Progressive Image Loading is the technique which consists of following<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><b>Show empty place holder<\/b><\/li><li><b>Replace it with a small low-quality image (blurry image)<\/b><\/li><li><b>Then replace it with desired high-quality image<\/b><\/li><\/ol>\n\n\n\n<p>We have tweaked&nbsp;<a href=\"http:\/\/codepen.io\/jmperez\/pen\/yYjPER\">Jos\u00e9 Manuel P\u00e9rez&#8217;s code<\/a>&nbsp;so it can work with multiple images. See below (you can also edit it in CodePen)<\/p>\n\n\n\n<p>See the Pen <a href=\"https:\/\/codepen.io\/ankurace\/pen\/xgGWNV\/\">xgGWNV<\/a> by Ankur Vyas (<a href=\"https:\/\/codepen.io\/ankurace\">@ankurace<\/a>) on <a href=\"https:\/\/codepen.io\">CodePen<\/a>.<\/p>\n\n\n\n<p><script async=\"\" src=\"https:\/\/production-assets.codepen.io\/assets\/embed\/ei.js\"><\/script><\/p>\n\n\n\n<p>After implementing we found this is it! It is exactly what we were looking for!<\/p>\n\n\n\n<p><i>Sample Home Page with Progressive Image Loading:<\/i>\u00a0https:\/\/boiling-meadow-22449.herokuapp.com\/index_pil<\/p>\n\n\n\n<p><i>Page Load Time(cache disabled):&nbsp;<b>4 seconds (Yay! Awesome!)<\/b><\/i><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"307\" src=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-progressive.png\" alt=\"Page Load Time with Progressive Image Loading\" class=\"wp-image-13914\" srcset=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-progressive.png 680w, https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/12\/page-load-progressive-300x135.png 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><figcaption>Image Loading<\/figcaption><\/figure>\n<\/div>\n\n\n<p>We were satisfied with these results as it loads the page&nbsp;<b>faster<\/b>&nbsp;and also provides&nbsp;<b>smooth loading of images<\/b>&nbsp;like Medium does!<\/p>\n\n\n\n<p>For this we used&nbsp;<i>Rails 4.2.6<\/i>&nbsp;with&nbsp;<i>Ruby 2.3.1<\/i>, you can find the&nbsp;<a href=\"https:\/\/github.com\/AnkurVyas-BTC\/test_page_performance\">complete source code here<\/a>.<\/p>\n\n\n\n<p>Thanks,&nbsp;<a href=\"http:\/\/twitter.com\/jmperezperez\">@jmperezperez<\/a>&nbsp;for&nbsp;<a href=\"https:\/\/medium.com\/@jmperezperez\/how-medium-does-progressive-image-loading-fd1e4dc1ee3d#.rav5ea7p9\">wonderful article!<\/a>&nbsp;who inspired me to write this one.<\/p>\n\n\n\n<p>That&#8217;s it! Thanks for reading. If you liked it, press the lovely heart button&nbsp;\ud83d\ude42<\/p>\n\n\n\n<p>We are a very Capable and a Committed team of programmers who love working with Startups. It&#8217;s a great feeling to help someone build their dream venture.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.botreetechnologies.com\/ruby-on-rails-development\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Click here for more details&#8230;<\/strong><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>At <a href=\"https:\/\/www.botreetechnologies.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">BoTree Technologies<\/a>, we build enterprise applications with our RoR team of 25+ engineers.<\/p>\n\n\n\n<p>We also specialize in RPA, AI, Python, Django, JavaScript and ReactJS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\" target=\"_blank\" rel=\"noopener noreferrer\">Consulting is free<\/a> &#8211; let us help you grow!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>While working on the project we came across the situation&#8230;<\/p>\n","protected":false},"author":9,"featured_media":13909,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,10],"tags":[],"class_list":["post-1892","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby-on-rails","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Page Load Optimization by Progressive Image Loading (like Medium)<\/title>\n<meta name=\"description\" content=\"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Page Load Optimization by Progressive Image Loading (like Medium)\" \/>\n<meta property=\"og:description\" content=\"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-08T07:23:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T10:24:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ankur Vyas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ankur Vyas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\"},\"author\":{\"name\":\"Ankur Vyas\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5\"},\"headline\":\"Page Load Optimization by Progressive Image Loading (like Medium)\",\"datePublished\":\"2017-01-08T07:23:32+00:00\",\"dateModified\":\"2022-12-13T10:24:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\"},\"wordCount\":710,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg\",\"articleSection\":[\"Ruby on Rails\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\",\"name\":\"Page Load Optimization by Progressive Image Loading (like Medium)\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg\",\"datePublished\":\"2017-01-08T07:23:32+00:00\",\"dateModified\":\"2022-12-13T10:24:08+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5\"},\"description\":\"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg\",\"width\":940,\"height\":627,\"caption\":\"Page Load Optimization in Rails\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Page Load Optimization by Progressive Image Loading (like Medium)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5\",\"name\":\"Ankur Vyas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png\",\"caption\":\"Ankur Vyas\"},\"description\":\"Ankur is a Ruby on Rails Developer and Practice Lead JavaScript. He loves Ruby, JavaScript, reading and writing blogs, problem-solving and taking ownership of work. Apart from coding he likes to listen to songs, gaming and traveling.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Page Load Optimization by Progressive Image Loading (like Medium)","description":"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/","og_locale":"en_US","og_type":"article","og_title":"Page Load Optimization by Progressive Image Loading (like Medium)","og_description":"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.","og_url":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2017-01-08T07:23:32+00:00","article_modified_time":"2022-12-13T10:24:08+00:00","og_image":[{"width":940,"height":627,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg","type":"image\/jpeg"}],"author":"Ankur Vyas","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Ankur Vyas","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/"},"author":{"name":"Ankur Vyas","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5"},"headline":"Page Load Optimization by Progressive Image Loading (like Medium)","datePublished":"2017-01-08T07:23:32+00:00","dateModified":"2022-12-13T10:24:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/"},"wordCount":710,"commentCount":0,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg","articleSection":["Ruby on Rails","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/","url":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/","name":"Page Load Optimization by Progressive Image Loading (like Medium)","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg","datePublished":"2017-01-08T07:23:32+00:00","dateModified":"2022-12-13T10:24:08+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5"},"description":"While working on the project we came across the situation where the client told us the\u00a0page load time\u00a0of our home page is\u00a0very high\u00a0and we must do\u00a0anything in the world\u00a0in order to reduce this load time as it is the heart of our website.","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2017\/01\/website-page-load.jpeg","width":940,"height":627,"caption":"Page Load Optimization in Rails"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/page-load-optimization-by-progressive-image-loading-like-medium\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Page Load Optimization by Progressive Image Loading (like Medium)"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/aa180b4d8d933949f15aba97d8d138a5","name":"Ankur Vyas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/ankur-vyas-1-150x150.png","caption":"Ankur Vyas"},"description":"Ankur is a Ruby on Rails Developer and Practice Lead JavaScript. He loves Ruby, JavaScript, reading and writing blogs, problem-solving and taking ownership of work. Apart from coding he likes to listen to songs, gaming and traveling."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/1892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=1892"}],"version-history":[{"count":4,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/1892\/revisions"}],"predecessor-version":[{"id":18249,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/1892\/revisions\/18249"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/13909"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=1892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=1892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=1892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}