A New Web Design Trend

Web Design NewHere, at Noam Design, we are constantly contributing to the web design world community and we’ve often pioneered new practices and innovative concepts within the industry. What we call ‘Load Sequencing’ and ‘Content Flushing’ are two ways to tremendously enhance the user experience for websites and web applications that are rich in design and/or features. These concepts allow for the almost instantaneous fetching of web content to the user, while other elements of the website or web application are seamlessly loading.

What is it all about?

In today’s internet browsing experience, there is nothing more frustrating and outdated than waiting for a web page to load.  We believe that when you go to a website, you shouldn’t have to wait for the site’s content to load, but rather you should be able to view relevant content right away – or at least be entertained while the main content of the page is loading. In other words, some web content should be fetched to the user immediately. For simple, light weight websites, the question may not be as critical. But for websites and web applications that are rich in features and/or design, it’s of the utmost importance. Especially given that more than 80% of all internet use is spent on rich web applications! Web based emailing and chatting, social networking, and video browsing, etc are just a few examples.

Google Mail – a Rich Web Application Example

Gmail is the perfect example of a feature rich web application. Google is doing an outstanding job with all its web applications, and Gmail is probably one of the best web apps available today on the web. As far as email clients are concerned, we believe Gmail is leading the industry, far ahead of its competitors. Without going into the details of all the features of Gmail, including heavy use of advanced JavaScript, it is obvious that the application is very rich and needs to be loaded into the user’s browser. So the Gmail team has worked very hard to minimize the load time and optimize their website. Still, it takes about 3 or 4 seconds for Gmail to load on a fast computer with a standard high speed internet connection in America. For this reason, the Gmail team adopted the use of a JavaScript pre-loader – a progress bar showing the user how much of the application remains to be loaded before Gmail can be accessed and used. But what can they do better?

web design gmail loading

Applying the Concepts of ‘Load Sequencing’ and ‘Content Flushing’ to Gmail

What if every time you went to Gmail, instead of watching a blank page with a small pre-loader on the upper left hand corner, you could read some short, interesting content without having to wait at all? Like the latest hot news in a field that interests you particularly? Or a picture randomly selected from your Flickr account? And as soon as Gmail is fully loaded, a ‘Go to Gmail’ button (or a ‘close’ button) would appear? This can be achieved using ‘Load Sequencing’ and ‘Content Flushing’.

web design gmail

Below, we will explain the techniques more in-depth, but for those of you who aren’t techie nerds, the idea is actually pretty simple: ‘Load Sequencing’ and ‘Content Flushing’ means that we carefully choose which elements (JavaScript, CSS, Html, images, etc…) are absolutely necessary to load in order to be able to show content to the user, and in what order they must be loaded. When we program the web page, we force the loading of these elements first, and then ‘flush’ the web content immediately to the browser (using the PHP Flush function). Only then do we continue to precisely load what is needed to display the rest of the page. This second loading process happens behind the scenes, while the user is being entertained with interesting and relevant content.

Where Can I See a Successful Example of ‘Load Sequencing’ and ‘Content Flushing’?

There are numerous techniques available to optimize a website’s load speed. ‘Load Sequencing’ and ‘Content Flushing’ are best served when combined with all these techniques. Minimizing HTTP requests, combining and optimizing images, using AJAX extensively, ‘pint point’ pre-loading, compressing files, Gziping, caching and Etaging are just a few examples. If you are interested in learning more about a specific optimization technique, let us know in the comments below and we’ll write a tutorial about it! You can also learn more about what can be done regarding website speed optimizationby reading what the Yahoo Developer Network has written about the subject – they are simply the best in this field! They also offer Yslow – a Firefox add-on that you can download here. The Plugin works within Firebug so if you don’t have this must-have-Firefox-extension installed, you need to download it first. For additional life saving Firefox Extensions, please read this article and stay tuned!

The Noam Design website offers a very interesting application of the Load Sequencing and Content Flushing concept. When you first visit the website, a ‘Splash window’ appears almost immediately displaying our latest projects while the rest of the website is seamlessly loading in the back (which is faded out). Thanks to this approach, we are able to present our users with a design-rich and feature-rich website while keeping the wait time to nearly nothing. To view the effect in action, close all the windows of your internet browser and restart it. Then type in www.noamdesign.com in the address bar – enjoy! (You must restart your  browser completely).

11 Comments

  • Frank
    Very interesting article! Looks like Google should take some pointers from you guys. Thanks!
  • Tingu
    Thank you! I really enjoyed reading this.
  • Fernando
    I loved the article. Thanks for sharing!
  • Marc
    In the example you give for Gmail, wouldn’t it take some additional time to load the “splash” content itself? Increasing the overall load time of the application?
  • Noam
    Hey Marc – thanks for the question. This is actually something we should clarify. Loading the “splash” content is minor compare to loading the entire application. No matter what your internet connection is, you will be able to see the splash content almost instantaneously if the coding is done right. Basically all you need to load is a small JavaScript code(for the fade out effect in the back) a small CSS code, and a small Html page (with PHP if the content is database driven). Then you can “flush” the content to the user and load the elements for Gmail behind the scenes – including the JavaScript loader which should probably load first at that point.

    So yes, overall you are loading some additional elements, but they are so small by themselves that the first splash will appear immediately when you go to gmail.com, minimizing to nearly zero the time when nothing happens on the user side. Obviously, it will be smart to use lightweight content for the “splash” element – texts and maybe a small image.

  • Marc
    Nice! I see your point. Also what if I am not interested in any news or anything but only want to go to gmail – wouldn’t your approach add an extra step? (Clicking on the “enter gmail” button).
  • Noam
    Yes you’re right. That’s why it should probably be optional – users should be able to disable the feature from their Gmail settings panel. And if they choose to have it on, they should be able to choose which content would be displayed. It could be content from a feed, news, or anything else. Maybe even their latest unread email? By the time the user reads the email and hits “reply”, Gmail would be entirely loaded and could open the conversation with the editor open.

    Another aspect to think about is that even if the user is only interested in getting to his or her Gmail account – they’ll have to wait 3 or 4 seconds anyway. If done right, using the “splash” content will not increase that time significantly. So instead of watching a blank page, the user is watching some relevant and interesting content and he or she can click anywhere outside of that content area to fade it out. Which will fade back in the Gmail loading screen (if the user clicked within the 3 or 4 seconds window that Gmail needs to load). So in all cases, the user experience is only enhanced.

    Thanks for brainstorming with us! Comments are always appreciated.

  • rutherford
    Got on reading the Google labs update. I can see the idea has potential, Gmail’s load time does seem to be getting ever longer this days so possibly I’ll use this option at some stage.

    From an independent site’s POV though a high load time invariably means the server is under stress. As commenter Marc states this measure would increase overall load, something that would not be beneficial in this case.

    A solution would be to add dynamic content from other sites (eg flickr to use one of your examples) via json-exposed feeds and apis. Thus keeping the extra work involved in sending this data to the client to a minimum of static text that would then be processed on remote servers for rendering on the client.

  • Tony
    Very good post! I really enjoyed reading.
  • Tech Artist
    Very good post. Thanks for sharing.
  • MichaellaS
    Thanks for the great post!

Leave a Reply

Sorry - this blog is now closed to new comments.