サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
www.stevesouders.com
October 12, 2015 4:19 am | 6 Comments Background The HTTP Archive crawls the world’s top 500K URLs twice each month and records detailed information like the number of HTTP requests, the most popular image formats, and the use of gzip compression. We also crawl the top 5K URLs on real iPhones as part of the HTTP Archive Mobile. In addition to aggregate stats, the HTTP Archive has data (including
August 7, 2015 10:50 am | 7 Comments Netflix published a great article, Making Netflix.com Faster, about their move to Node.js. The article mentions how they use performance.timing.domInteractive to measure improvements: In order to test and understand the impact of our choices, we monitor a metric we call time to interactive (tti). Amount of time spent between first known startup of the applica
May 12, 2015 1:31 am | 25 Comments The takeaways from this post are: If your website has a hero image, make sure it loads and renders as early as possible. Many designs that feature a hero image suffer from HID (Hero Image Delay) mostly due to blocking scripts and stylesheets. You should add custom metrics to your website to make sure you know how quickly (or slowly) important content gets display
November 25, 2014 1:20 pm | 13 Comments or “Duration includes Blocking” Resource Timing is a great way to measure how quickly resources download. Unfortunately, almost everyone I’ve spoken with does this using the “duration” attribute and are not aware that “duration” includes blocking time. As a result, “duration” time values are (much) greater than the actual download time, giving developers u
October 9, 2014 3:52 am | 2 Comments A “webview” is a browser bundled inside of a mobile application producing what is called a hybrid app. Using a webview allows mobile apps to be built using Web technologies (HTML, JavaScript, CSS, etc.) but still package it as a native app and put it in the app store. In addition to allowing devs to work with familiar technologies, other advantages of building
August 21, 2014 12:45 am | 9 Comments The W3C Web Performance Working Group brought us Navigation Timing in 2012 and it’s now available in nearly every major browser. Navigation Timing defines a JavaScript API for measuring the performance of the main page. For example: // Navigation Timing var t = performance.timing, pageloadtime = t.loadEventStart - t.navigationStart, dns = t.domainLookupEnd
June 8, 2014 10:11 pm | 8 Comments Background The HTTP Archive crawls the world’s top 300K URLs twice each month and records detailed information like the number of HTTP requests, the most popular image formats, and the use of gzip compression. We also crawl the top 5K URLs on real iPhones as part of the HTTP Archive Mobile. In addition to aggregate stats, the HTTP Archive has the same set of dat
February 11, 2014 4:59 pm | 3 Comments Recently someone asked me if it was possible to measure the performance of localStorage. While this was difficult a few years ago, we can do it now thanks to Navigation Timing. This post explains how to measure localStorage performance as well as the results of my tests showing the maximum size of localStorage, when the penalty of reading localStorage happens
November 26, 2013 3:43 pm | 6 Comments This past week I dug into the performance of custom elements and found some surprises. In my previous blog post, Async Ads with HTML Imports, I complained that HTML imports block the page from rendering when a SCRIPT tag is found and lamented the fact that the spec doesn’t provide a mechanism to make this coupling asynchronous. Custom elements are just the
November 16, 2013 5:05 am | 15 Comments Scripts loaded in the typical way (<script src="a.js"></script>) block rendering which is bad for performance. The solution to this problem is to load scripts asynchronously. This is the technique used by the best 3rd party snippets, for example, Google Analytics, Tweet button, Facebook SDK, and Google+ Follow button. Ads are probably the most prevalent 3rd
November 7, 2013 2:41 pm | 20 Comments A favorite character from the MASH TV series is Corporal Walter Eugene O’Reilly, fondly referred to as “Radar” for his knack of anticipating events before they happen. Radar was a rare example of efficiency because he was able to carry out Lt. Col. Blake’s wishes before Blake had even issued the orders. What if the browser could do the same thing? What if it
September 5, 2013 10:41 am | 13 Comments With the adoption of SPDY and progress on HTTP 2.0, I hear some people referring to domain sharding as a performance anti-pattern. I disagree. Sharding resources across multiple domains is a major performance win for many websites. However, there is room for debate. Domain sharding isn’t appropriate for everyone. It may hurt performance if done incorrectly.
Each result is essentially a bitmask indicating whether the busy indicator was triggered. For example, the first result for “Chrome 27 (Mac OS)” and the “click link” test is TSCPRN. This means the Tab icon, Status bar, and Reload icon indicators were triggered; but the Cursor, Progress bar, and Network indicators were not triggered. A few notes about the indicators: The network indicator is only a
March 26, 2013 3:07 pm | 17 Comments I often scan the mobile dev tools landscape and get flashbacks to 2005 when debugging and profiling in desktop browsers was nigh impossible. This was before Firebug when alert was the primary means of debugging. woe is mobile dev tools Most of the tools that exist for desktop web development are also needed on mobile. That’s obvious. And yet, despite more than
March 18, 2013 4:30 pm | 35 Comments A recent thread on Github for html5-boilerplate discusses whether there’s a benefit from loading jQuery from Google Hosted Libraries, as opposed to serving it from your local server. They referenced the great article Caching and the Google AJAX Libraries by Steve Webster. Steve(W)’s article concludes by saying that loading jQuery from Google Hosted Libraries
February 26, 2013 5:35 pm | 16 Comments Two performance best practices are to add a far future expiration date and to delay loading resources (esp. scripts) until after the onload event. But it turns out that the combination of these best practices leads to a situation where it’s hard for users to refresh resources. More specifically, hitting Reload (or even shift+Reload) doesn’t refresh these cac
February 16, 2013 11:22 am | 2 Comments Over the last two months I’ve been coding on the HTTP Archive. I blogged previously about DB enhancements and adding document flush. Much of this work was done in order to add several new metrics. I just finished adding charts for those stats and wanted to explain each one. Note: In this discussion I want to comment on how these metrics have trended over the
October 30, 2012 11:29 am | 1 Comment Today I got an email asking this question about window.performance.timing: I’ve noticed that on all browsers (where timing is supported), the timing stops once the readyState of the document = ‘complete’. Seems normal, but in many cases, I’ve seen web pages that load additional “stuff” via aysnc loading (mostly mktg tags) and the timing object doesn’t seem t
October 11, 2012 8:11 pm | 10 Comments I previously wrote that the keys to a fast web app are using Ajax, optimizing JavaScript, and better caching. Using Ajax reduces network traffic to just a few JSON requests. Optimizing JavaScript (downloading scripts asynchronously, grouping DOM modifications, yielding to the UI thread, etc.) allows requests to happen in parallel and makes rendering happen so
October 9, 2012 5:06 pm | 25 Comments I just returned from Velocity Europe in London. It was stellar. And totally exhausting! But this post is about the other fantastic web performance event that took place after Velocity: WebPerfDays London. WebPerfDays is like a day-long web performance meetup event. Aaron Kulick organized the first one last June right after Velocity US. He had the brilliant ide
September 24, 2012 12:25 pm | 4 Comments I want to re-run the real user cache experiment that Tenni Theurer and I ran back in 2007. I’m designing the experiment now and will share that design in this blog when it’s well-baked. One change is I’d like to use an external script as the cached response that is tested. Another change is I want the experiment to be a snippet that any website can embed. T
September 10, 2012 7:50 pm | 13 Comments In Keys to a Fast Web App I listed caching as a big performance win. I’m going to focus on caching for the next few months. The first step is a study I launched a few days ago called the Clear Browser Experiment. Before trying to measure the frequency and benefits of caching, I wanted to start by gauging what happens when users clear their cache. In additio
Updates: Philip Tellis deployed this as part of Log-Normal’s snippet and found two problems. One is fixed and the other is still being investigated: The previous code had a race condition when beacon.js called document.body.appendChild before BODY existed. This was fixed. Some users reported the update.php iframe was opened in a new tab in IE8. I can’t repro this bug but am investigating. Analyzin
April 10, 2012 5:29 pm | 32 Comments In yesterday’s blog post, Making the HTTP Archive faster, one of the biggest speedups came from not using a script loader. It turns out that script loader was using document.write to load scripts dynamically. I wrote about the document.write technique in Loading Script Without Blocking back in April 2009, as well as in Even Faster Web Sites (chapter 4). It look
April 9, 2012 7:43 pm | 14 Comments This week I finally got time to do some coding on the HTTP Archive. Coincidentally (ironically?) I needed to focus on performance. Hah! This turned out to be a good story with a few takeaways – info about the HTTP Archive, some MySQL optimizations, and a lesson learned about dynamic script loaders. Setting the stage The HTTP Archive started in November 2010 by a
March 22, 2012 10:41 pm | 24 Comments “The fastest HTTP request is the one not made.” I always smile when I hear a web performance speaker say this. I forget who said it first, but I’ve heard it numerous times at conferences and meetups over the past few years. It’s true! Caching is critical for making web pages faster. I’ve written extensively about caching: Call to improve browser caching (lack
February 10, 2012 5:37 pm | 26 Comments Yesterday I did a workshop at Google Ventures for some of their portfolio companies. I didn’t know how much performance background the audience would have, so I did an overview of everything performance-related starting with my first presentations back in 2007. It was very nostalgic. It has been years since I talked about the best practices from High Perform
January 13, 2012 10:09 pm | 20 Comments Last night I spoke at the San Francisco JavaScript Meetup. I gave a brand new talk called JavaScript Performance that focuses on script loading and async snippets. The snippet example I chose was the Google Analytics async snippet. The script-loading part of that snippet is only six lines, but a lot of thought and testing went into it. It’s a great prototype
September 21, 2011 11:03 pm | 11 Comments I just returned from Breaking Development Conference, an amazing gathering of many of the brightest minds in mobile web development. On the flight home I watched the video ($$) and slides from Rajiv Vijayakumar’s talk on Understanding Mobile Web Browser Performance at Velocity 2011. Rajiv works at Qualcomm where his team has done extensive performance anal
次のページ
このページを最初にブックマークしてみませんか?
『Steve Souders - High Performance Web Sites』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く