Se la funzione viene chiamata prima puoi fare una cosa cosi`:

function pippo () {
if (!finecaric) {
setTimeout('pippo()', 200);
return;
} ... il resto della funzione come prima


In pratica se la pagina non e` stata caricata esce dalla funzione ma fa in modo di richiamarla tra 200 msec.

Se il tempo e` troppo corto carica troppo il client, se e` troppo lungo ti fa aspettare per nulla.

Ciao
Michele