Since MathJax doesn't run until after the page displays, the only way
to avoid this would be for you to pre-arrange for the math not be be
displayed, and then wait for MathJax to run, and then display the
math. One way to do this would be to have the BODY element styled
with visibility:hidden, and then use
<script>
MathJax.Hub.Queue(function ()
{document.body.style.visbility="visible"});
</script>
after MathJax.js has been loaded. This will hide the entire page
until MathJax has finished running.
This is only effective if you have page with very little math and not
many other resources that have to be loaded, as the page will remain
blank until ALL the images and other content are loaded. That may not
be acceptable on larger pages with lots of graphics, for example.
Davide
Are you sure you used visibility:hidden for the BODY element? Did the
page show up immediately, or was it hidden for a time and then showed
up?
Try
<script>
MathJax.Hub.Queue(
["Delay",MathJax.Hub,2000],
[alert,"Still hidden?"],
function () {document.body.style.visibility = "visible"}
);
</script>
which will give a 2 second delay before showing the page, and showing
an alert before the page goes visible. This is just to see if the
visibility:hidden is working, and is not a proposed solution to your
problem.
Davide