2012-07-20 11 views
13

font-faceの遅延ロードを避ける実際の方法はありますか?フォントフェイスの読み込み遅延を避ける

Paul Irish about this FOUTのブログポストがあります(文字化けしています)。その2009年から。

過去3年間に進歩はありますか?

+6

あなたが出会った情報を参照するときは、実際にリンクすることは一般的には良い考えです。 –

+0

これは、このトピックに関する新しい記事です。私は役に立ちました:https://michael.stapelberg.de/Artikel/font-loading –

答えて

7

あなたは2つの別々の問題を提起しています。

実際のフォントファイルのダウンロードが遅れることは避けられませんが、実際には必要のないものは含めないことで、全体のファイルサイズを最小限に抑えることができます。使用しているサービス/方法によっては、含まれている文字セット(/言語)、およびウェイトとスタイルを減らす必要があります。

上記のダウンロード時間の問題のため、部分的に避けられないテキストのフラッシュについては、部分的には避けられません。しかし、できるだけ減らしたら、フォントローダーを実装してこの部分をよりよくコントロールする必要があります。ここにはTypeKit's (open-sourced) implementationbrief explanatory blog postがあります。一番下の例は特にFOUTを示しています。あなたはそれを自分のコードに入れるだけです。
サービスのGoogleローダーを使用する場合は、information from FontDeckがあります。これにより、GoogleのWebFontsサービスでも同じものが使用されます。

他のサービスであれば、独自の調査を開始する必要がありますが、それは一般的な概念です。これらのツールを使用すると、多少のスクリプトやCSSルールを使用して、フォントがプレゼンテーションの準備が整うまで、他の用途の中で影響を受けるテキストを隠すことができます。それは完全には考えていませんが、少なくともFOUTを防ぎます。その初期の時間を過ぎると、ブラウザのキャッシュが引き継ぎ、それを大きく欺くべきです。

+4

try {Typekit.load();} catch(e){} 'TypeKitの実装からかなりスクリプトの実行まではドキュメントがレンダリングされません。ユーザーが余分な時間を費やすのをやめてもらいたい場合(うまくいきなりミリ秒単位で計測されれば)、これはうまくいきます。できるだけ早くページを開いてください。これは機能しません。 (もしユーザーがあなたのサイト*仕上げ*読み込みを見るのに十分な長さにこだわっていなければ、あなたのサイトがどのように見えるかは重要ではありません:) – danlefree

+1

オプションとしてdata-uri埋め込みフォントに言及する価値はあります。追加のhttp要求を避けます。 – jason

0

A)のCache-Control、正しくコンテンツタイプを設定することにより、フォントをキャッシュ:

Cache-Control:public, max-age=15552000 
Content-Type:application/x-font-woff;charset=UTF-8 (differs for other font files) 

B)ヴァリヘッダーにHTTPSを避けてください。 Accet-Encodingのみを設定します。 ザは変化:HTTPS breaks IE font loading.

Vary:Accept-Encoding 

https://github.com/typekit/webfontloader

C)AとBは、ブラウザが既にフォントをロードした最初の要求、後に完全に機能しなければなりません。これが十分でない場合は、Web Font Loaderを試してください。

関連する問題