Reload the preview frame every X seconds, keeping the scroll location in tact.

A good idea (not sure if possible) would be to use canvas to overlay a screenshot of the iframe while it's loading and remove the screenshot when the load finishes so that the flicker from the automatic scroll to top is hidden.