The art and science of performant Web 2.0 AJAX apps

With so many frameworks, libraries and open source AJAX widgets it’s easy for a well performing Web 1.0 site to be ‘upgraded’ into a poor performing web 2.0 site. Microsoft made it very easy to Ajaxify a web app with ASP.NET AJAX offering both 

  1. the update panel for plug & play AJAX including smarts for injecting and executing script blocks,
  2. support for writing script control behaviour and
  3. ability return JSON from script web services.

A good web developer will always keep performance in mind when wiring up a page (using tools such as FireBug and YSlow to pinpoint bottlenecks).  But with so many helpful high-level JS libraries such as Prototype, JQuery, DOJO etc. it can be easy to forget how expensive repeated DOM calls are. 

If nothing else, performance is a good reason to embrace the GWT and Script# toolkits – as they enable you to write compile checked code while outputting performant JS that doesn’t necessary have any reliance on an interpreted JS framework.

However perhaps more important then all of the above is how to make your application ‘feel’ like it loads quickly and is responsive.  This really comes down to understanding what information needs to be immediately available, what can be lazy-loaded/rendered, including scripts.  Joseph Smarr from plaxo has a good presentation on ‘Why Everything You’ve Been Taught is Wrong’.

Finally if that all sounds like to much hard-work, then look out for DOLOTO – a Microsoft research initiative which attempts to automagically lazy-load your app for you!