Se puede hacer con jquery y ajax.
prueba de esta manera
Código:
$(document).ready(function(){
$('div contenedor').html('<div class="loading"><img src=" direccion de la gif de cargando /loading.gif" width="70px" height="70px"/></div>'); //aca carga primero el gif. imagen de espera
$.ajax({
url: 'la url de tu web donde va a cargar la imagen',
success: function() {
$('div contenedor').fadeIn(1000).html("Codigo del div que tiene la imagen"); //aca se espera un tiempo y carga la imagen. mientras espera esta en funcion la imagen gif de espera anterior
}
});
});