Luiscalfer ..
Si, funciona .. pero el problema está en que al usar javacript, estás mandando esas instrucciones al navegador .. hay que esperar a que este la cargue y de ahí empezar a interpretar ese código Javscirpt. Podrías "parar" (detener) la ejecución de tu página en ese instante además de observar (dependiendo de la conexión de tu servidor) una "pagina en blanco" por unos instantes.
Es recomendable usar header() del tipo:
Código PHP:
header("Location: pagina.tal");
exit;
las cabeceras HTTP se envian -antes- al cliente (navegador) que cualquier otro HTML/javascript ..
Un saludo,