私のウェブサイトにフォントを埋め込むために@ font-faceを使用しています。最初に、テキストがシステムのデフォルトとしてレンダリングされ、フォントファイルがロードされた後、正しいフォントが数秒後にレンダリングされます。この遅延を最小限に抑える/取り除く方法はありますか?Webページをレンダリングする前にフォントが読み込まれるのを待ちます。
答えて
これはブラウザがどのように振る舞うかを示しています。
最初にあなたの@fontが宣言されていますか?それはあなたのHTMLにインラインで、ページ上のCSSシートで宣言されていますか、(うまくいけば)外部のCSSシートで宣言されていますか?
外部のシートにない場合は、それを1枚に移動してみてください(とにかくこれは通常の方が良い方法です)。
これが役立たない場合は、ユーザーエクスペリエンスに重大な悪影響を与える2番目の相違点の割合はご自身である必要がありますか?そうであれば、JavaScriptを検討して、リダイレクト、一時停止などできることがいくつかありますが、実際にはが悪いです。元の問題よりもです。ユーザーにとっては悪く、維持するには悪い
このリンクは役立つかもしれない:
あなたができる最良のことは、Tomの助言に従うことです。さらに、実際のフォントレンダリングブロッカーであるため、クライアントが次のページのロード時にWebサーバーに当たらないようにしてください。実際のフォントリソースとあなたの良いことに1つを借りている。 –
素敵な記事です。 Firefoxがあまり遠く離れたリリースでフォントを読み込むためにSafariのアプローチを採用することを望みましょう。 FOUTはこれまで私にとっては問題ではありませんでしたが、カスタムフォントで作業している現在のサイトでは、システムフォントとは全く異なるため、初めてのフラッシュは非常に目立ちます。 – wheresrhys
大きなフォント(200 Kb)と低速の接続(つまり3G)は1秒未満ではありません。設計者は、SIMチップを備えたタブレットの場合にこのシナリオを検討する必要があります。 – Jaime
たぶん、このような何か:実際のコンテンツとうまくいけば、完全にレンダリングされたフォントと体の内容を交換するときに、ページが読み込まれると、
$("body").html("<img src='ajax-loader.gif' />");
その後、あなたはこのかかわらで遊んでする必要があります...
だけIEの負荷を最初のフォントや、ページの残りの部分を。 他のブラウザは、何らかの理由で同時に物を読み込みます。フォントをホストしているサーバーやフォントのダウンロードに問題があるとします。 フォントが読み込まれるまでサイト全体がハングアップします。私の意見では、スタイルのないテキストのフラッシュは、サイトを全く見ないよりも優れています。
同じWebサイトでフォントをホストしている場合を除いて、まあまあです。 –
また、フォントがブートストラップグリフアイコン以外の場合 –
グリフのピクセルサイズを知る必要がある場合を除いて、 –
Joni Korpiはページの残りの部分より前にフォントを読み込むのに良い記事を持っています。
http://jonikorpi.com/a-smoother-page-load/
彼はまた、ユーザーがイライラしないように遅延を軽減するためにloading.gifを使用しています。
(function() {
document.getElementsByTagName("html")[0].setAttribute("class","wf-loading")
document.getElementsByTagName("html")[0].setAttribute("className","wf-loading")
})();
使用この方法.. Webfont.js
で使用編集:最善のアプローチは、CSSファイルにあなたのフォントをエンコードをbase64におそらくあります。つまり、HTMLが解析されて表示されるまでにフォントを完全に読み込む必要があります。これを行うには、フォントリスのWebFontジェネレータhttps://www.fontsquirrel.com/tools/webfont-generatorを「Expert」をクリックしてから「base64 encode」をクリックします。これがTypeKitのようなサービスの仕組みです。
オリジナルの答え:フォントは彼らの戦略をコピーすることによってFontLoader https://github.com/smnh/FontLoaderかを使用することでしょう読み込まれているかどうかを検出する もう一つの方法。
フォントが読み込まれると、テキストのサイズが変更されるため、ブラウザのscrollイベントにバインドされます。これは2つのdivを含んでおり(高さが変わるとスクロールする)、IEでは別のフォールバックが使用されます。
代わりにsetInterval
を使用してDOMを定期的にチェックすることができますが、javascriptイベントを使う方がはるかに高速で優れています。
明らかに、bodyの不透明度を0に設定し、フォントが読み込まれると一度に表示するようなことがあるかもしれません。
使用https://github.com/typekit/webfontloader
とあなたのする@ font-face内のCSSフォント・ディスプレイを使用することができる構成でイベント https://github.com/typekit/webfontloader#configuration
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
custom: {
families: [ 'CustomFont1', 'CustomFont2' ]
},
active: function() {
//render your page
},
});
</script>
をご確認ください。利用可能なすべての値について キーワードは以下のとおりです。
- 自動
- ブロック
- スワップ
- フォールバック
- オプション
あなたは現場でどこで使うべきですか?
ここで読むことができます:https://www.sitepoint.com/css-font-display-future-font-rendering-web/?utm_source=frontendfocus&utm_medium=email
- 1. Python WebDriverがページを読み込むのを待ちます
- 2. Mink:@BeforeStepでページが読み込まれるのを待ちます。
- 3. jsoupを完了ページ(進行状況ページをスキップする)が読み込まれるまで待ちますか?
- 4. 次の機能が起動する前にiframeが読み込まれるのを待ちますか?
- 5. JavaのURLから内容を読み取る前にページが読み込まれるまで待つ
- 6. selenium-webdriverとページが読み込まれるまで待つ
- 7. JQuery:アニメーションの読み込みが完了するのを待ちません。
- 8. フォントの読み込み中にページがフリーズする
- 9. ページが読み込まれる前にiframeに読み込みメッセージを挿入する方法
- 10. iOS用ChromeにGoogle Webフォントが読み込まれない
- 11. QUnit、JQuery、iframeによるUIテスト - 新しいページが読み込まれるまでの待ち時間は?
- 12. ページが読み込まれた後の£のフォントを変更します。
- 13. ページ全体が読み込まれるまでJQueryの実行を待つ
- 14. Angular2/Webpack:CSSファイル内に読み込まれるフォントを読み込む方法は?
- 15. フォントを読み込んでTextGeometryでレンダリングする方法
- 16. jQuery:背景が読み込まれ、アニメーションがトリガーされるのを待ちます。
- 17. Webページを読み込む際に読み込むWebサーバー上のコードはどこに置かれますか?
- 18. ページの読み込みに素晴らしいフォントなどのWebフォントを読み込むにはどうすればよいですか?
- 19. WebページがJavaで完全にロードされるまで待ちます
- 20. メインビューコントローラが読み込まれる前に場所を読み込む方法は?
- 21. ページの読み込み時にアニメーションを開始する、読み込まれたページで停止する
- 22. 外部CSSがWebページに読み込まれない
- 23. 画像が読み込まれるのを待ってから
- 24. jquery .htmlメソッドがレンダリングを完了するまで待ちます
- 25. サードパーティのアプリケーションウィンドウが読み込まれるまで待つ
- 26. Webページの読み込み時にポップアップするAlertViewを削除します。
- 27. .NET PrivateFontCollection - 異なるスタイルのフォントを読み込みます
- 28. iOSフォントの読み込みに問題があります
- 29. 非常に遅いページ読み込み - ASP/PHP CSSファイルの待ち時間
- 30. PHP読み込み中のコンテンツがページとして読み込まれる
キャッシングフォントが有効です。 – Krii
これは、ワイヤレスリンク上のユーザーがWebフォントを読み込むのに時間がかかるため、Webサイトを実際に遅くするための良い方法です。テキストが数秒で表示されない場合、多くのユーザーは戻るボタンを押すだけです。 – erjiang