Moje rozwiązanie w końcu jest rzeczywiście w php, a nie ajax (tak naprawdę nie ma potrzeby po stronie klienta w tej sytuacji).
Oto zarys:
<?php
while (something is true){
//do stuff
flush(); // execute the stuff you did until now
sleep(300); // wait 5 min
// now check database and retrieve new data, if any, and insert into $result
if (isset($result)){
//do stuff with the $result
break; // get out of the loop
}
}
?>