Sure. The hidden iframe allows you to do 3 things: 1) preserve state across view changes (mail vs. preferences, etc) 2) isolate code 3) reduce over-the-wire data size because all the rendering/UI generation is happening in-browser.
If you take a look at gmail in a debugger you'll see there are 4 iframes. The controller is the 'js_frame', the 'canvas' contains the graphic UI elements.
Leaving the canvas in its own iframe allows it to be reloaded separately without affecting application state.
Javascript still modifies the canvas iframe DOM. But that modification is cross-frame from the controller iframe.
I used a similar frame-based technique back in '97 when our enterprise startup needed a snappy native-looking zero-deploy UI.
If you take a look at gmail in a debugger you'll see there are 4 iframes. The controller is the 'js_frame', the 'canvas' contains the graphic UI elements.
Leaving the canvas in its own iframe allows it to be reloaded separately without affecting application state.
Javascript still modifies the canvas iframe DOM. But that modification is cross-frame from the controller iframe.
I used a similar frame-based technique back in '97 when our enterprise startup needed a snappy native-looking zero-deploy UI.