Dynamicly reloading a page

Hi again,

Basics
I’ve made a interface where the end user can enter/change a lot of information then submit this, this is all ajax and not a lot of the interface’s layout will ever change, jsut certain div’s attributes.

After submitting it I’ve greyed the background out and added a box displaying that the page will be updated after certain changes in the database have been verified and made.

Need to do
The way I intend to do this is set a simple javascript timer up every 30 seconds which will asynchronously pass a PHP and return a json object. This will indicate how the update is going (say a percentage or stage I’ve not decided yet), it will return complete after the update is made and a javascript function will be executed.

I hope that was clear!
So my real question is; is that the best way to go about it or and I coming at the problem form the wrong approach?

Would it be easier to have… say a hidded iFrame which will intern refresh every 30 seconds… but then I hate iFrames. the page is dependent on javascript being on the clients machine so using javascript isn’t a problem.

Or is there some special technique someone can guide me in the direction of? Sockets?

Thanks greatly in advance!
Oli