Chiaramente c'è anche un'altra soluzione.
Invece di inviare il form lo fai aprire a javascript in un iframe creato dinamicamente in un div nascosto.
Così la pagina (applicazione) che processa il form invia l'output al frame nascosto e tu resti nella stessa pagina del form senza bisogno di aggiornarla.
Nota che così però l'utente potrebbe non accorgersi se ha o non ha inviato il form: sarebbe più saggio fornirgli comunque un feedback.
Allora invece di usare un frame nascosto, lo mostri; e la applicazione che processa il form restituirà, in tale frame, il feedbak appropriato.
Sembra difficile ma non lo è, e funziona egregiamente.