LONG ANSWER/TIPS: As a web developer I keep running into clients that think the page should appear and be functioning the instant the url is sent... I know that will never happen any time soon, so I try to do the next-best-thing:
I make sure that at least enough of the main content is displayed and functional within the first 1-5 seconds. Google has done some research into this and it seems than anything beyond 15 seconds and you lose a significant portion of your audience due to site abandonment. This increases almost geometrically until after about 1-2 minutes there is probably no one there...
Once the basic page is up and running, I then go back in using javascript and post-load any content that user's do not need to see immediately in order for the page to have "appeared" to be completely loaded, and which by the time they navigate to it should be loaded, or well on its way to being loaded.
I also tweak the .htaccess file (when possible) to increase the content expiration date so the page data is not removed from the cache too soon. That way, if they come back within a reasonable time-frame, it saves some http requests and therefore decreases my load times.
I also try to consolidate my javascript and css code into as few files as possible. It is not always practical to put everything in a single or even two files, but it is a worthy goal when possible.
I also try to make sure all of my images are saved at their final pixel dimensions and with no preview data so it makes the files much smaller. You can do this using the save for web command in photoshop CS.
I also try to make sure and load any loooong javascript code at the end of the page code so the page will load and appear without waiting on the javascript code. Most browsers will encounter a javascript include and wait until that is loaded before moving on to the next script/html/image load. Javascript includes are asynchronous: they still load javascript files one-at-a-time.
I ALWAYS use something to let the user know that content is being loaded or looked for. I have found that if people have something to let them know SOMETHING is happening, they are much more patient and less likely to have a negative experience.
Here is a link to the site that does all of the above:
http://www.heritage-education.com/denverpharmacytechschool_1a.htm
There are other site-slowing issues that unfortunately, most of us do not get control over.
The biggest bottleneck I run into time and again is that the site is hosted on a webserver with a lot of other high-traffic sites and so gets bogged down trying to deliver content.
No matter how fast your site is, this can make it take eons... the link above is a case in point. This client has a slooooooow server and a slooooow connection that is being shared by 75 people! So, sometimes it loads well and other times it takes as long as 20 seconds to come up on their internal machines.
On my connection at work and home it comes up right away, but even then it sometimes takes 3-6 seconds to fully load.
I hope these observations help you. I had to learn all of this the hard way, but this forum has been invaluable for connecting with people who know far more than I do about just about everything to do with coding and web technology...
SHORT ANSWER: 1-3 seconds to become operation, or at lease to appear operational and be mostly responsive.
Cheers!