Helping people with computers... one answer at a time.

Sometimes you can begin using a web page before it's fully downloaded, sometimes you can't. We'll look at one common reason why that might be.

I have a dial-up internet connection and the slow speed is probably the problem, but lately I have noticed that on some web pages I have to let the page completely load before I can hit login or whatever is the next logical thing to do. If I hit login before the current page loads I'll get the browser error screen. Aren't there supposed to be some interrupts in good programming that allow the keyboard to take control of the situation before the web page is completely loaded? One of the pages I am having trouble with is Discover Card while Master Card works like a champ. I suppose I could minimize the problem by using the other card as the main one.

I can only speculate, but I've got a pretty good hunch as to what's going on. It is likely a design issue, meaning that it's a side effect of how that particular web page is constructed.

Absolutely you can interrupt the page download, but the problem is that if you do the browser may not yet have everything it needs to do what you've asked.

The most likely problem is Javascript.

Or, more specifically, when Javascript gets downloaded and when it gets executed during the process of downloading the web page.

As a refresher, Javascript is a programming language. Instructions can be written in Javascript which can then be included on a web page. The "scripts", as they're called, then execute in your browser to perform various tasks. The most common example are things like animated menus - when you mouse over a menu on a web page and the menu changes color or automatically fly's out or does something else, that's often Javascript at work behind the scenes.

As the web has grown and become more complex, and as bandwidth has increased, web designers are using more and more Javascript to make more and more functional websites that do more than just display a static page of information. GMail and the various Google web-based applications are great examples.

In my experience it's very common for banking sites to use Javascript in various ways for their login process and, I believe, to perform some additional security checks at login time.

"... web designers are using more and more Javascript to make more and more functional websites that do more than just display a static page ..."

So why does it work "early" for some and not for others?

It's all about web page design.

And I think that's best described if we look at a hypothetical sequence of events when you download a web page (for the pendants out there, I'm not saying this is exactly what happens: this is an over-simplification for purposes of example):

  • You request the login page from your bank's site.

  • Your browser begins downloading the HTML file that is that web page.

  • The browser may begin displaying the HTML before the file is completely downloaded. Typically this happens from the top of the page down, but this can be severely impacted by specific page design.

  • As it displays the page the browser encounters images, which are actually separate requests it then makes of your bank's web server. It may make those requests when the image is encountered, or it may wait until the entire HTML file has been downloaded, or it may happen somewhere in between.

  • In addition, the browser may encounter Javascript, which may be either embedded in the HTML itself, or an external reference needing a separate request much like an image. Typically Javascript is executed as it's encountered, though I don't believe that's guaranteed.

  • At some point that HTML file we started with finishes downloading.

  • At some point all the external references on that web page, like images and external javascript, finish downloading.

  • Any remaining Javascript that should be executed on page load should now be in place and can be executed.

  • The page is "done".

That should be enough to at least theorize why logging in before a page has completed download works for some sites and not for others.

Sites which require Javascript and reference it in the HTML file "early" - before the login button is displayed or accessible - may work. By the time you see and hit the login button all the pieces are in place for the login to actually happen.

Sites which require Javascript but download and execute it "late" - some time after the login button is displayed or accessible - may fail. If you click the login button before that required Javascript has had an opportunity to execute all the pieces are not in place for the login to actually happen and the login fails.

And for completeness, sites that don't require Javascript typically just work.

As you've experienced you can quickly get a sense for which sites allow you to login early. Unfortunately there's no real remedy for the others. In some cases all this is also impacted by how your browser chooses to perform its task, so if you're really motivated you can try the page in a different browser. It might work, but it might not.

Article C3289 - February 12, 2008 « »

Share this article with your friends:

Share this article on Facebook Tweet this article Email a link to this article
Leo Leo A. Notenboom has been playing with computers since he was required to take a programming class in 1976. An 18 year career as a programmer at Microsoft soon followed. After "retiring" in 2001, Leo started Ask Leo! in 2003 as a place for answers to common computer and technical questions. More about Leo.

Not what you needed?

1 Comment
Jen
February 16, 2008 7:25 AM

This may not apply to the website mentioned, but there are some sites don't let you do anything until all the ads have loaded. Many of them are retrieved from third party servers which just adds to the bog time.

Comments on this entry are closed.

If you have a question, start by using the search box up at the top of the page - there's a very good chance that your question has already been answered on Ask Leo!.

If you don't find your answer, head out to http://askleo.com/ask to ask your question.