Archives
Tethering is exhilarating
I love my iPhone. That sentiment doubled the day I followed Nat Torkington’s pointer to Ten Second iPhone Tethering. Later that month I flew to Boston and basked in the freedom of having an Internet connection at the airport and hotel without paying wifi fees. Then it all came crashing down. iPhone 3.1 came out. […]
new Browserscope security tests
Browserscope is an open source project based on my earlier UA Profiler project. The goal is to help make browsers faster, safer, and more consistent. This is accomplished by having categories of tests that measure how browsers behave in different areas. Browserscope currently has these test categories: Network, Acid3, Selectors API, Rich Text, and Security. […]
Performance of 3rd Party Content
Last month Jesse Robbins and I co-hosted the Velocity Summit. For the last three years we’ve gathered 30-40 industry gurus in the area of web performance and operations to help identify important topics to highlight at Velocity. One session at this year’s Velocity Summit was called “Performance for the Masses.” It was led by Pat […]
Browser Performance Wishlist
What are the most important changes browsers could make to improve performance? This document is my answer to that question. This is mainly for browser developers, although web developers will want to track the adoption of these improvements. download scripts without blocking SCRIPT attributes resource packages border-radius cache redirects link prefetch Web Timing spec remote […]
5e speculative background images
This is the fifth of five quick posts about some browser quirks that have come up in the last few weeks. Chrome and Safari start downloading background images before all styles are available. If a background image style gets overwritten this may cause wasteful downloads. Background images are used everywhere: buttons, background wallpaper, rounded corners, […]
5d dynamic stylesheets
This is the fourth of five quick posts about some browser quirks that have come up in the last few weeks. You can avoid blocking rendering in IE if you load stylesheets using DHTML and setTimeout. A few weeks ago I had a meeting with a company that makes a popular widget. One technique they […]
5c media=print stylesheets
This is the third of five quick posts about some browser quirks that have come up in the last few weeks. Stylesheets set with media=”print” still block rendering in Internet Explorer. A few weeks ago a friend at a top web company pinged me about a possible bug in Page Speed and YSlow. Both tools […]
5b document.write scripts block in Firefox
This is the second of five quick posts about some browser quirks that have come up in the last few weeks. Scripts loaded using document.write block other downloads in Firefox. Unfortunately, document.write was invented. That problem was made a bzillion times worse when ads decided to use document.write to insert scripts into the content publisher’s […]
5a Missing schema double download
This is the first of five quick posts about some browser quirks that have come up in the last few weeks. Internet Explorer 7 & 8 will download stylesheets twice if the http(s) protocol is missing. If you have an HTTPS page that loads resources with “http://” in the URL, IE halts the download and […]
Browser script loading roundup
How are browsers doing when it comes to parallel script loading? Back in the days of IE7 and Firefox 2.0, no browser loaded scripts in parallel with other resources. Instead, these older browsers would block all subsequent resource requests until the script was received, parsed, and executed. Here’s how the HTTP requests look when this […]
Page Speed 1.6 Beta – new rules, native library
Page Speed 1.6 Beta was released today. There are a few big changes, but the most important fix is compatibility with Firefox 3.6. If you’re running the latest version of Firefox visit the download page to get Page Speed 1.6. Phew! I wanted to highlight some of the new features mentioned in the 1.6 release […]
Zen and the Art of Web Performance
The Zen Wall We moved into a teardown 2BR/1BA house in 1993. After two years of infrastructure repairs (heating, plumbing, electrical, doors, windows) we started work on the yard. One of the jobs that I enjoyed most was building a dry stone retaining wall in the front yard. Here are the before and after pictures: […]
jQuery 1.4 performance
JQuery 1.4 was released yesterday. I lifted the text from the release announcement, removed stop words, converted to lowercase, and found the ten most used words: jquery (71) function (27) performance (23) object (20) events (19) element (15) ajax (15) dom (13) json (12) request (10) That’s right, “performance” comes in third ahead of “object”, […]
Stuck inside Classic Rock
Help! I’m trapped inside Classic Rock and can’t get out! I grew up in the 60s and 70s listening to what is now called “classic rock”. My first album was Creedence Clearwater Revival’s Cosmo’s Factory. Ramble Tamble is still one of my favorite rock songs. I bought that album when I was 10 years old. […]
Crockford, webhosting, online dating, JSON, alert
This is a fun story that has a security and performance point to it. Earlier today, Dion Almaer tweeted: Wow, Doug added an alert() to http://www.json.org/json2.js which just alerted a LOT of people on the Internet. Proving a point on hotlinks? I was talking to Doug about his keynote at Add-on-Con tomorrow, and asked him […]
Speed Tracer – visibility into the browser
Is it just me, or does anyone else think Google’s on fire lately, lighting up the world of web performance? Quick review of news from the past two weeks: timeline and heap profiler added to Chrome Dev Tools Google Analytics publishes async script loading pattern latency and Page Speed recommendations added to Webmaster Tools deep […]
(down)Loading JavaScript as strings
The Gmail mobile team and Charles Jolley from SproutCore have recently published some interesting techniques for loading JavaScript in a deferred manner. Anyone building performant web apps is familiar with the pain inflicted when loading JavaScript. These new techniques are great patterns. Let me expand on how they work and the context for using them. […]
How browsers work
My initial work on the Web was on the backend – C++, Java, databases, Apache, etc. In 2005, I started focusing on web performance. To get a better idea of what made them slow, I surfed numerous web sites with a packet sniffer open. That’s when I discovered that a bulk of the time spent […]
Google Analytics goes async
Today’s announcement that Google Analytics Launches Asynchronous Tracking is music to my ears. Not only does it make web sites faster, switching over to this async pattern improves uptime and increases the amount of analytics data gathered. I’ll touch on each of these three benefits, and wrap-up with an overview of the new code snippet. […]
Chrome dev tools
I just finished reading the latest post on the Chromium Blog: An Update for Google Chrome’s Developer Tools. Dynatrace’s Ajax Edition was impressive – just take a look at what John Resig had to say. I’m also impressed by what’s been added to WebKit’s Web Inspector and Chrome’s dev tools. You should definitely take them […]