This is actually working correctly, in theory, though it shouldn't be too noticeable.
The HTML is optimised so that the content loads first.
This is the HTML:
Notice how there is
<div id="content"> and that is where all the content is
then AFTER that, you see the <header>
and very shortly after that you see the <footer>
The <header> bit is therefore loaded after the content, so this may give the impression that briefly it has disappeared.