I have a tabbed web application, and I also created caching of the images before page transitions, so when the user goes to a page, I make sure all the images are downloaded
I use:
$(window).bind('load', function() { // code here });
Until the page is not completely loaded this event is not fired. So, there, you can call a function that unlock your page's elements.
Enjoy :)