The features below can all be switched on and off
individually via the web.config file. If you just install the package and not
do any further configuration, it only minifies and combines JavaScript and CSS
files, and then only when the site is in Release mode.
·
Minifies JavaScript and CSS files. Minification involves
stripping superfluous white space and comments. Only JavaScript and CSS files
that are loaded from the head sections of your pages are minified.
·
Combines JavaScript files and CSS files. Loading a single large
file is often much quicker than loading a series of small files, because that
saves the overhead involved in all the request and response messages.
·
If a CSS file contains image urls that are relative to the folder
containing the CSS file itself, those urls are fixed up by the package. That
way, they continue to work even if CSS files from several different folders are
combined.
·
Allows you to configure cookieless domains from which to load
JavaScript files, CSS files and images. This way, the browser no longer sends
cookies when it requests those files, reducing wait times for the visitor.
·
Lets you configure multiple cookieless domains. This causes the browser
to load more JavaScript, CSS and image files in parallel.
·
Allows you to configure the package so it only kicks in in
release mode. That way, you see your individual files complete with white space
and comments while developing, and reap the performance improvement in your
live site.
·
Reduces the size of the HTML generated by your .aspx pages by
removing white space and comments. Note that the .aspx files themselves are not
affected, only the HTML sent to the browser.
·
Optimizes use of the browser cache by allowing the browser to store
JavaScript, CSS and image files for up to a year. Uses version ids in file
names to ensure the browser picks up new versions of your files right away, so
visitor never see outdated files.
·
Unlike similar packages, doesn't add query strings when combining
files or when inserting versions. This optimizes caching by proxy servers (many
proxy servers won't cache files with query strings).
·
Preloads images immediately when the page starts loading, instead
of when the browser gets round to loading the image tags - so your images
appear quicker. You can give specific images priority.
·
Converts image file names to lower case, to make it easier for
those proxy and browser caches that do case sensitive file name comparisons to
find your file in their caches - so they don't request the same file again.
·
Helps you detect missing files by throwing an exception when a
JavaScript file, CSS file or image is missing. By default, the package handles
missing files silently, without throwing an exception.
·
To reduce CPU overhead and disk accesses caused by the package, it
caches intermediate results, such as minified files. A cache entry is removed
when the underlying file is changed, so you'll never serve outdated files.
This package is just one way of improving the performance of
your web site. My recently released book ASP.NET Performance Secrets (https://www.packtpub.com/asp-net-site-performance-secrets/book)
shows how to pinpoint the biggest performance bottlenecks in your web site,
using various tools and performance counters built into Windows, IIS and SQL
Server.
It then shows how to fix those bottlenecks. It covers all
environments used by a web site - the web server, the database server, and the
browser.
The book is extremely hands on - the aim is to improve web
site performance today, without wading through a lot of theory first.