NavigationArts.com

our company

Contact Us

Navigation Arts Location Map

Connect

Find out more about our consulting services. McLean. Boston. New York.

What's New

Dustin Collis

Live in Vegas

CIO Dustin Collis to Speak at Annual Sitecore Symposium in Las Vegas, Sept 10th.

Solutions

Thinking Big

Clark Construction

Digital Innovation

Reimagining how our clients can do business in the digital world.

Thinking Small

University Website Design

Mobile & Responsive

A responsive design approach engages users wherever they are. Web. Tablets. Mobile.

User Experience

Left Brain

PFC Energy

Critical Thinking

User-centered digital strategies help our clients surpass their competition.

Right Brain

National Aquarium

Immersive Design

Exciting and memorable visual experiences guide users through digital channels.

Technology

Sitecore

sitecore

Certified Partner

NavArts is one of only 7 Sitecore partners in the USA with 4 or more certifications.

Drupal

Drupal 7 Content Management

Open-Source

NavArts brings proven process and UX skills to the popular open-source platform.

our work

Case Study

Marriott

Marriott International

Multisite design creates seamless booking across more than 3,000 properties.

Design

Portfolio_Water

Portfolio

Cutting-edge design to revolutionize the world of user experience.

Insights

Content Guide

content migration whitepaper

Download

Give content as much attention as the design, code and testing of your site.

Sitecore Saves

Dustin Collis

Watch

Webinar: 8 Principles of Content Strategy & Enterprise Architecture

Search

Shinkansen for ASP.NET-based CSS and JavaScript GZIP Compression by:


February 10th, 2010

I recently saw an innocent enough tweet about something that just happened to be exactly like something I’d been looking for for quite some time: a server-side ASP.NET CSS and JavaScript file concatenator and GZIP utility called Shinkansen. It’s from Milan Negovan and it’s hosted over at CodePlex. Looking over the documentation, it looks easy enough to set up and configure. He’s blogged about it here.

These techniques are key in the subject of Web site performance tuning, at least in terms of how your code is put together.  Since I’ve been doing a fair amount of ASP.NET and Sitecore work in the last year or so, this has been on my mind a lot.

Who’s That?

Milan is a guy who’s Web site I’ve long been a fan of for a number of reasons. He has in particular featured exceptional content on the Web site performance subject over at aspnetresources.com.

Milan’s site first came to my attention as one the few sites out there to focus largely on ASP.NET and Web standards-based approaches, which is a mix, at least back in the day, you didn’t see very much. That said, another subject which is clearly near and dear to his heart is performance. He’s also written about the subject and has also posted a great tool I find myself frequenting from time to time that analyzes how much savings you can get out of HTML using GZIP to compress your code on the server.

Fewer HTTP Connections and GZIP Compression Are Good Things

In recent years there’s been a ton of research on how to speed up load times on Web sites. Two fairly major concepts are reducing HTTP connections from the Web browser to the server, and using GZIP compression. Every connection to the server takes packets and bytes, and did you know that connections are made to the server even on items that might be cached? Ever heard of a 304 “Not Modified” response? It depends how your server is configured, but the browser might ask the server if a file has changed, even if it hasn’t — and the server then responds as such. There’s ways to prevent that, but if you’re not doing those things, every connection is work the browser, your computer, and the server is doing. It might be quick, but they add up. You can set “expires” headers which help reduce those lookups, but it can be complex (or even impossible) to set up in some environments.

Another way to reduce those lookups is to reduce the number of files being requested. In an enterprise type environment it’s not unusual to want to have several CSS and JavaScript files. Well, Milan’s code is designed to concatenate several files into a single request.

Not only that, but as icing on the cake, it also minifies and GZIPs the results so that when it’s returned to the client (your browser) it comes down the pipe in smaller bits.

More Information On Client Side Performance

I’ve blogged about it before, both here at NavArts.com as well as on my personal site Cherny.com (here and here). And, in that book I contributed to, there’s a chapter from Kevin Lawver and an Appendix from yours truly which touches on many performance enhancements.

Previously at NavArts we’ve used GZIP repeatedly on projects that in particular seemed too heavy for their own good, such as Behind the Badge (DC United’s blog). Additionally my coworkers Tim Stephens and Corey Burnett configured the new NavigationArts.com site to use GZIP. If you haven’t given it a shot in the past, I think it’s something well worth looking into.

For more information on configuring GZIP and such, there’s tons of resources out there, all you need to do is look for them:

For more information on troubleshooting and debugging, there’s client side and browser-based tools which can help identify the slow parts of your pages and even help inspect the requests and the responses from the server on your site: YSlow from Yahoo! and Google Page Load. Even great utilities such as Charles and Fiddler are great help when tuning performance, I can’t recommend them enough, honestly, as they help inspect every HTTP connection your browser makes. Charles even can add up the bytes in those 304 connections, if for some reason you don’t believe me…

Tags: Application Development, Web Development, , ,




September 2014
M T W T F S S
« Aug    
1234567
891011121314
15161718192021
22232425262728
2930