There isn't any one special formula. Loading time is loading time and the only way to minimize it is to require the least amount of it possible. This means optimizing content and dealing with bulky items on a more dynamic basis when possible. Basically, try to keep the larger files, such as video/sound as dynamically streamed content that get loaded on demand rather than by default. The same can go for large image files. You can't really control how quickly someone might try to navigate somewhere, so trying to load things in the background isn't necessarily a relaible approach. It helps to have loading indicators for things as well. It gives someone (including yourself) a good measure to gauge whether they want to wait or not... I know if I click a link in a site and I don't see anything happening, I'm closing my browser before my virus software can pop up with an infection alert.
that's a design decision.
the total time to load all assets is going to be the same whether everything is loaded before you see anything on stage or only part is loaded when you see something on stage.
the difference is how long your want your users to wait before they see anything. and then how long they have to wait after the initial display is seen.
I'm big on only loading what's necessary and then loading additional content as it is requested.
But sometimes getting it all out the way upfront has its benefits too.
It is amazing though how things have changed with the dominance of broadband. This page on the apple website:
in the current age 500kb can come down almost instantly.