サブセットとローカルストレージでのフォントパフォーマンスの向上
キーポイント
- フォントサブセット:Webフォントで未使用の文字を削除し、ファイルサイズを大幅に削減し、Webフォントのパフォーマンスを向上させます。 Font SirrelのWebFontジェネレーターなどのツールは、サブセットおよびエンコーディングプロセスを支援します。
- ロールバックフォント:実際のフォントダウンロード中にフォールバックシステムフォントを表示し、ウェブサイトのコンテンツに即座にアクセスし、ウェブサイトまたはアプリケーションの知覚されたパフォーマンスを改善します。
- ローカルストレージ:ローカルストレージにWebフォントを保存して、フォントのパフォーマンスを大幅に向上させます。ウェブページがロードされるたびに再ダウンロードすることなく、セッションまたはデバイスの再起動後にフォントが持続できます。ただし、この方法は、ユーザーのブラウザがローカルストレージをサポートするかどうかに依存することに注意する必要があります。
多くの注目を集めている最近のテクノロジーは、サブセット方法を使用してWebページフォントのサイズを削減し、Base64としてエンコードし、ローカルストレージに保存することです。不適切に使用すると、Webフォントはパフォーマンスに深刻な影響を与える可能性があり、Webサイトのコンテンツへのアクセスを防ぐことができます。
この手法により、フォントファイルのサイズが縮小され、ローカルストレージに非同期に保存され、フォントのダウンロード中にフォールバックシステムフォントが表示されます。これは、ローカルストレージのいくつかの固有の機能と組み合わされて、フォントを永続的にキャッシュできるようにします。これは、フォントがクライアントマシンに残り、デバイスの再起動後であっても、セッション全体にとどまることを意味します。
フォントサブセット
フォントサブセットは、Webフォントのパフォーマンスを改善する最も重要な方法の1つです。サブセットは、フォントファイルから未使用の文字を削除することです。未使用の文字は通常、使用しない言語の文字、またはあなたのウェブサイトやアプリケーションが必要としないかもしれない特殊文字の文字ですが、通常はフォントファイルに埋め込まれています。サブセットを使用すると、ファイルサイズを最大50%削減できます。フォントリスのWebFontジェネレーターを使用してサブセットとBase64エンコードを使用して最終ファイルを生成できます(Form Subsettingにアクセスするには、Base64エンコードの「CSS」セクションで「CSS」セクションで「CSS」セクションを選択してください)。
終了すると、1つのリクエストで再利用できるすべての圧縮Webフォントを備えたStyleSheetファイルが表示されます。
フォールバックフォントを選択を選択します
ブラウザがフォントファイルをダウンロードしようとしている間に待機しているユーザーを避けるために、フォールバックシステムフォントを表示するのが最善です。これにより、コンテンツへの即時アクセスが可能になります(結局のところ、それがユーザーがウェブサイトにアクセスするものです)。フォントを同時にロードすると、ブラウザがフォントファイルを待機している間にテキストを空白に保ち、ユーザーはファイルをダウンロードするのを待っている間にコンテンツを読み取ることができません。
非同期ロードと適切なフォールバックフォントを使用して、ユーザーはすぐにファイルのダウンロードが完了した後、フォールバックフォントに表示されたテキストをすぐに表示し、選択したWebフォントに切り替えます。
フォールバックフォントをより滑らかな遷移にスタイリングし、コンテンツの再配置を減らすことができます。これにより、ユーザーは遅滞なくコンテンツにアクセスできるため、Webサイトまたはアプリの知覚されたパフォーマンスがすぐに向上します。
さまざまなオペレーティングシステムで利用可能なシステムフォントを見つけるには、次のリソースを表示できます。
- CSSフォントスタック - MacおよびWindows用のWebが配置されたCSSフォントスタックの完全なコレクション。
- iOSフォント - 各iOSバージョンの各フォントをリストします。
- Androidでは、どのシステムフォントが多数のブランチや異なるブランドの存在が原因であるかを判断することは困難です。ただし、Androidで最も一般的なフォントは、Droid Serif、Droid Sans、Droid Mono、およびRobotoです。
最初に、フォールバックフォントスタイルを保存するクラスをDOMノードに追加します。その後、JavaScriptを使用して、ロードされたフォントスタイルのクラスに置き換えます。また、後で再利用するために、フォントファイルへのパスを変数に保存します。
次に、プロジェクトをローカルストレージにセットアップし、プロジェクトを入手しようとすることにより、ローカルストレージサポートを確認する必要があります。一部のブラウザはプライベートモードで何も保存できませんが、window.localStorageは引き続きストレージオブジェクトを返します。スクリプトが機能することを確認するために、この追加のリクエストが必要です。
document.documentElement.className = 'fallback'; var css_href = '../path/fonts.css';
ブラウザがLocalStoragesupportedテストを渡し、フォントファイルが保存されている場合、InjectRawStyle()関数を使用してファイルを取得してページタイトル内のスタイルタグに追加できます。ブラウザがテストに失敗した場合は、UIスレッドがブロックされないように、オンロードイベントでInjectFontSstylesheet()機能を呼び出します。
var localStorageSupported = function() { try { localStorage.setItem('test', 'test'); localStorage.removeItem('test'); return true; } catch(e) { return false; } };
この関数は、ドキュメントのヘッドにスタイルタグを作成し、テキストパラメーターを介してその内容を取得します。この段階では、フォールバッククラスをフォントクラスにWebフォントスタイルに置き換えます。
if (localStorageSupported() && localStorage.webFonts) { injectRawStyle(localStorage.webFonts); } else { window.onload = function() { injectFontsStylesheet(); }; }
ここで、実際のスタイルのフォントとWebフォントに頼る必要があります。ブラウザを更新し、コンテンツの再配置を観察することにより、これらのスタイルをテストできます。目標は、フォールバックフォントスタイルを可能な限り一致させて、実際のスタイルを作成して、変化の認識がほとんど感知できなくなるようにすることです。
function injectFontsStylesheet() { var xhr = new XMLHttpRequest(); xhr.open('GET', css_href, true); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { injectRawStyle(xhr.responseText); localStorage.webFonts = xhr.responseText; } }; xhr.send(); }
function injectRawStyle(text) { var style = document.createElement('style'); style.innerHTML = text; document.getElementsByTagName('head')[0].appendChild(style); document.documentElement.className = 'webFont'; }
以上がサブセットとローカルストレージでのフォントパフォーマンスの向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
