This link has been bookmarked by 126 people . It was first bookmarked on 30 Oct 2006, by Serge.
-
-
IE, Firefox, and Safari ship with HTTP
pipelining disabled by default -
For objects under roughly 8k in size, you can double his effective
bandwidth by turning keepalives on and spreading the requests over four
hostnames. This is a huge win. - 2 more annotations...
-
-
-
You can measure the effective bandwidth of your users on your site
relatively easily, and if the effective bandwidth of users viewing
your pages is substantially below their available downstream bandwidth, it
might be worth attempting to improve this.Before giving the browser any
external object references (<img src="...">, <link rel="stylesheet"
href="...">, <script src="...">, etc), record the current time.
After the page load is done, subtract the time you began, and include that
time in the URL of an image you reference off of your server.Sample javascript implementing this:
-
-
-
By default, IE allows only two outstanding connections per hostname
when talking to HTTP/1.1 servers or eight-ish outstanding connections total.
Firefox has similar limits. Using up to four hostnames instead of one will
give you more connections. (IP addresses don't matter; the hostnames can
all point to the same IP.)
-
-
Francisco Javier Alcala-SolerAaron Hopkins covers web server tuning, caching and page optimizations to improve performance.
-
-
Use Google's Load
Time Analyzer extension for Firefox from a realistic net connection to
see a graphical timeline of what it is doing during a page load. This shows
where Firefox has to wait for one HTTP request to complete before starting
the next one and how page load time increases with each object loaded. The
Tamper Data extension
can offer a similar graph if you make use of
its hidden
graphing feature.
-
-
-
Instead of relying on the browser to revalidate its cache, if you change
an object, change its URL. One simple way to do this for static objects if
you have staged pushes is to have the push process create a new directory
named by the build number, and teach your site to always reference objects
out of the current build's base URL. -
Avoid the use of query params in image URLs, etc. At least the Squid cache refuses to cache any URL
containing a question mark by default. I've heard rumors that other things
won't cache those URLs at all, but I don't have more information. - 1 more annotations...
-
-
wolf hesseplementing the Cache-Control, Ex
-
-
While working on optimizing page load times f
-
-
-
Tips to reduce your page load time
After you gather some page-load times and effective bandwidth for real
users all over the world, you can experiment with changes that will improve
those times. Measure the difference and keep any that offer a substantial
improvement. -
Load fewer external objects. Due to request overhead, one bigger
file just loads faster than two smaller ones half its size. Figure out how
to globally reference the same one or two javascript files and one or two
external stylesheets instead of many; if you have more, try preprocessing
them when you publish them. If your UI uses dozens of tiny GIFs all over
the place, consider switching to a much cleaner CSS-based design which probably won't need so
many images. Or load all of your common UI images in one request using a
technique called "CSS
sprites". - 6 more annotations...
-
-
Maan MehtaAaron Hopkins of Google has released an article on Optimizing Page Load Time which came out of his experience optimizing page load times for a high-profile Ajax application. He starts off talking about "how much I could reduce latency due to external obje
-
-
It is widely accepted that fast-loading pages improve the user
experience. In recent years, many sites have started using AJAX techniques
to reduce latency. Rather than round-trip through the server retrieving a
completely new page with every click, often the browser can either alter the
layout of the page instantly or fetch a small amount of HTML, XML, or
javascript from the server and alter the existing page. In either case,
this significantly decreases the amount of time between a user click and the
browser finishing rendering the new content.However, for many sites that reference dozens of external objects,
the majority of the page load time is spent in separate HTTP requests for
images, javascript, and stylesheets. AJAX probably could help, but
speeding up or eliminating these separate HTTP requests might help more, yet
there isn't a common body of knowledge about how to do so.While working on optimizing page load times for a high-profile AJAX
application, I had a chance to investigate how much I could reduce latency
due to external objects. Specifically, I looked into how the HTTP client
implementation in common browsers and characteristics of common Internet
connections affect page load time for pages with many small objects.
-
-
Gary BurgeAfter you gather some page-load times and effective bandwidth for real users all over the world, you can experiment with changes that will improve those times. Measure the difference and keep any that offer a substantial improvement.
-
Tangthon&&&
-
-
It is widely accepted that fast-loading pages improve the user experience. In recent years, many sites have started using AJAX techniques to reduce latency. Rather than round-trip through the server retrieving a completely new page with every click, often the browser can either alter the layout of the page instantly or fetch a small amount of HTML, XML, or javascript from the server and alter the existing page. In either case, this significantly decreases the amount of time between a user click and the browser finishing rendering the new content.
However, for many sites that reference dozens of external objects, the majority of the page load time is spent in separate HTTP requests for images, javascript, and stylesheets. AJAX probably could help, but speeding up or eliminating these separate HTTP requests might help more, yet there isn't a common body of knowledge about how to do so.
While working on optimizing page load times for a high-profile AJAX application, I had a chance to investigate how much I could reduce latency due to external objects. Specifically, I looked into how the HTTP client implementation in common browsers and characteristics of common Internet connections affect page load time for pages with many small objects. -
It is widely accepted that fast-loading pages improve the user experience. In recent years, many sites have started using AJAX techniques to reduce latency. Rather than round-trip through the server retrieving a completely new page with every click, often the browser can either alter the layout of the page instantly or fetch a small amount of HTML, XML, or javascript from the server and alter the existing page. In either case, this significantly decreases the amount of time between a user click and the browser finishing rendering the new content.
However, for many sites that reference dozens of external objects, the majority of the page load time is spent in separate HTTP requests for images, javascript, and stylesheets. AJAX probably could help, but speeding up or eliminating these separate HTTP requests might help more, yet there isn't a common body of knowledge about how to do so.
While working on optimizing page load times for a high-profile AJAX application, I had a chance to investigate how much I could reduce latency due to external objects. Specifically, I looked into how the HTTP client implementation in common browsers and characteristics of common Internet connections affect page load time for pages with many small objects.
-
-
-
However, for many sites that reference dozens of external objects, the majority of the page load time is spent in separate HTTP requests for images, javascript, and stylesheets. AJAX probably could help, but speeding up or eliminating these separate HTTP requests might help more, yet there isn't a common body of knowledge about how to do so.
-
Would you like to comment?
Join Diigo for a free account, or sign in if you are already a member.