¿Por qué puede fallar header refresh en php? ¿Alternativas?

Hola, estoy iniciándome en el desarrollo mvc, y pienso que ahí radica el problema.
Hasta ahora cada vez que tenia que mostrar un mensaje del tipo, registro ingresado correctamente, faltan datos, etc usaba el header refresh, me parece una maravilla ya que puedes decir cuanto tiempo quieres que permanezca dicho mensaje y que luego te redireccione.
Ya me ha fallado algúna que otra vez, no me redirecciona y no sé por que ya que esta completamente correcto, he probado a usar el window.location de javascript combinado con setInterval y el window.location funciona pero el setInterval no, me gustaria saber por que puede fallar el header location o en su defecto algúna alternativa para poder redireccionar con temporizador.
Gracias.

Añade tu respuesta

Haz clic para o