yo por lo general utilizo jquery para hacer esto.. aca te dejo mi ejemplo.
Cita: $(document).ready(function(e) {
$('.main').hide();
$(window).load(function(){
$('#loader').hide();
$('.main').show();
});
});
siguiendo el ciclo de vida de la pagina para cargar su contenido, primero entra en el document.ready y termina en el window.load.. por lo que en el '.main' es el div que contiene todas las etiquetas.. y en el '#loader' es la imagen o texto que queras poner mientras carga (ejemplo: cargando...) una vez se haya cargado y renderizado todo el sitio en el explorador, pasara al window.load, donde oculto el loader y muestro el div que contiene todo el contenido