Борьба с FOUT в Firefox:
Firefox начинает перерисовывать текст после события window.load.
Поэтому я скрыл содержимое, как это делает Пол Айриш, но ПОСЛЕ window.load я все еще жду 200 миллисекунд (чтобы дать FF время для реального рендеринга), а затем показываю страницу.
На моем сайте много изображений, поэтому, чтобы ускорить это, я сначала отправляю страницу целиком без контента, а затем получаю контент с помощью вызова ajax.
Это большая работа, чтобы удовлетворить ФФ, но результаты хорошие.
Это мой пол-ирландский вариант, обратите внимание, я использую отрицательный текстовый отступ вместо видимости, чтобы обслуживать посетителя как минимум быстрее:
<script>
(function(){
var d = document, e = d.documentElement, s = d.createElement('style');
if (e.style.MozTransform === ''){ // gecko 1.9.1 inference
// s.textContent = 'body{visibility:hidden}';
s.textContent = 'body{text-indent:-9999px}';
e.firstChild.appendChild(s);
function f()
{
var ffrendertime = setTimeout ( function(){s.parentNode && s.parentNode.removeChild(s)} , 200 );
}
addEventListener('load',f,false);
setTimeout(f,2000);
}
})();
</script>