ちらつき/遅延を止めるためにフォントをプリロードする方法を誰かが理解しましたか?
2 に答える
ポール・アイリッシュがFOUT(スタイルのないテキストのフラッシュ)と呼ぶこの問題に関しては、多くの議論がありました。これを制限する方法はたくさんあります
1スクリプトタグの前のページの最上部にCSSを配置する
2フォントファイルのサイズを最小化する
3遠い将来の期限切れヘッダーを使用したブラウザーキャッシュ
4 CSSとフォントファイルをgzipで圧縮します(WOFFはgzipで圧縮できません)
Paul Irishがこれについて素晴らしい記事を書いています:@font-faceFOUTとの戦い
Steve Soudersは、彼のHighPerformanceWebサイトブログにもすばらしい記事を掲載しています。@font-faceand performance
FirefoxでのFOUTとの戦い:Firefoxは、window.loadイベントの後にテキストのレンダリングを再開します。つまり、Paul Irishのようにコンテンツを非表示にしますが、window.loadの後も、200ミリ秒(実際のレンダリングにFF時間を与えるため)待ってから、ページを表示します。
私のサイトにはたくさんの画像があるので、これをスピードアップするために、私は最初にコンテンツなしでページをほとんど送信し、次にajax呼び出しでコンテンツを取得します。FFを満足させるのは大変な作業ですが、結果は良好です。
これは私のポールアイリッシュバリアントです。少なくともレイアウトをより速く訪問者に提供するために、可視性の代わりに負のテキストインデントを使用していることに注意してください。
<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>