by aardvark

 Let the User Skip the Splash Page


The proliferation of splash pages on web sites has been seen by many to be a hindrance to the user. A splash page generally consists of a default home page that displays the company logo, or some other branding for the site and/or company, using everything from Flash movies to animated graphics.

What most site designers forget is that while their desire to brand their site may be important, it slows down the user every time that user has to wait for it to download, and then click through (provided that option has been offered by the designer). So instead of forcing the user to circumnavigate the page with bookmarks or directly typing the page address in to his or her browser, we assume that once is enough. Or, in the case of this tutorial, once a month is enough.

I am offering two solutions within this article. One is for those of you who do not have access to server-side scripting and is written in JavaScript. The other is writtin in VBScript for Active Server Pages, but the concept is simple enough and may be easily repurposed for other server-side scripting languages.

What We're Doing

We will set a cookie on the user's computer indicating that the user has seen the splash page already. The next time the user comes back, the script will look for the cookie. If the cookie is there, the splash page is skipped, if the cookie is not there, the splash page is displayed. The cookie expires after a pre-determined amount of time.

JavaScript Solution

You should paste the following code block in the <HEAD> of your HTML page. There are comments strewn about within it, so make sure you don't paste those in.

The above block of script creates the redirect function that will kick the user out of the splash page when called. The first thing the function does is look for a cookie called SplashSkip. If that cookie has a value of TRUE then it changes the URL of the current page to whatever the value for URL is as defined below.

Setting Splash equal to the GetCookie function with the SplashSkip variable allows us to look for the cookie named SplashSkip without having to hardcode the value into the GetCookie function.

The two functions above actually retrieve the values of any cookies passed to them, while making sure the script doesn't fall apart on older browsers, or on a browser with no cookie(s) set.


This piece of script above is the only function that is run as soon as the page begins to load. The ReDirect function as defined above now kicks in, which checks for the specified cookie. If that cookie doesn't exist then the function ends, as you can see in the else {} statement above. The target URL is placed in the parentheses.

This final snippet of code creates the function that sets the cookie. This function is called after the page has loaded, and so only runs if the user wasn't moved to a new page by the redirection function that loaded as soon as the page opened. You set the number of days the cookie lasts on the user's machine by changing the value of expDays.

<body onload="SetCookie('SplashSkip','TRUE');">

Finally, you add the JavaScript SetCookie function to an onLoad event in your <body> tag. The example above defines the cookie name and value, which is what the rest of the script checks against in order to skip the splash page.

ASP/VBScript Solution

This script still sets a cookie, but all the work is done by the server. Instead of the splash page flashing on screen for a moment, as it does with the JavaScript solution, this script just serves up a completely different page. The first thing you need to do, before the <head> tag, or anything else in the ASP file, is paste the following code:

The first thing the script does is look for a cookie with the name ASPSplashSkip and value of TRUE. If that cookie exists, you are immediately served up a different page, and the splash page has been skipped.

If the cookie is not there, it goes on to the next part, which consists of displaying two SUBs, which are just pieces of HTML and/or script wrapped in <% SUB %> containers. In this case, the function that sets cookies is wrapped in one, and the actual HTML of the page is wrapped in another. I tend to use SUBs since it helps me to quickly and easily modify what happens in my ASP scripts when I have pieces of logic driving what gets displayed -- as I do here.

The first part allows you to select a timeframe for the expiration of the cookie. I have provided three timeframes to make it easy, since you can't just enter a number of days as you can with the JavaScript. So if you decide you only want the cookie to last one week before expiring, set TargetDate equal to WeekLater.

The second part sets the cookie with the name/value pair you see in quotes. In this example, the name is ASPSplashSkip and the value is TRUE. It also sets the expiration date for the cookie based on the value you set for TargetDate.

Finally, whatever is within the <% SUB HTML %> and <% END SUB %> containers is the actual content of your splash page. The example above is trimmed to just the <HTML> tags, but you can have any HTML in there, including your Flash splash movie, or your DHTML effects, or whatever else goes on that splash page.


See an example of these scripts work with an ASP page, or see it work with a plain HTML page using JavaScript.


Remember that this doesn't guarantee a user won't see a splash page more than once a month (for this example), especially if they switch browsers or have cookies turned off, but it's a good start. This also doesn't mean you shouldn't re-examine the utility of your splash pages. They should still be functional, and should still offer a way to get to the real content of your site for the user who actually sees it.


 Reader Comments

   aardvark wrote on 21 May, 2000  [Delete]

After reading the section "Presentation and Accessibility" above, I remembered my own recent foray into the absurd which involved the Levi's, Warner Brothers, and Roswell web sites. Those of you on the list may remember my letter to the site developers detailing my frustration with the absurd lack of concern for the user. A 230k page sliced out of ImageReady with no 'alt' attributes, no content that wasn't an image, no links to email anybody, and in general, no desire to present anything other than a questionable design by an inexperienced and/or arrogant firm. I am not surprised by this, and I am not surprised by the lack of concern many companies have. As developers, however, we all have a responsibility to not be an arrogant putz and to consider the goal of the site, and the goal of the user.

   mat_catastrophe wrote on 23 May, 2000

Wow! One hell of an argument. I have questions, though, that really are tangential to the main point. I recently did some redesigning of my personal site, and in it I decided to forego the underlining of links. Is this a bad thing? Are there standards for that in the W3C?

Also, at one point (not too long after getting a copy of dreamweaver), I did some DHTML on part of my site that, while pleasing some of my geek friends who like pretty widgets, tended to clutter the space.

So, I am looking for overall suggestions. Those can be mailed to me, if you all care to comment....

Now, for another idea. I have wrestled alot with the content to flash ratio of the web for awhile. I like sites that use flash to get the point across, but I am aware that there are people without high-speed access or the latest plugins. I suppose the question is: Why should great design be hampered, especially if coupled with great content?


[Advanced Search]

Submit an article, news, reviews, or whatever you want

Change Site Look
Change Member Info

Email evolt.org

Other articles by this author:

Including Files in ASP (15-Mar-00)

BeOS 5 to be Released for Free (18-Jan-00)

BBB Requests Input on Proposed Online Code (20-Nov-99)

IE5.0 for Mac Delayed Again (09-Sep-99)

more articles...