ロード時間を最適化するために作業しているサイトにbase64でエンコードされた画像を使用することを考えています。
とにかく、始める前に、これを行うことの利点と欠点は何ですか?
現時点では、デメリットはありませんが、あまり頻繁に使用される手法ではなく、見逃していないのではないかと思います。
主題をグーグル検索した後、私は明確なものを見つけられなかったので、私はここで尋ねることにしました。
非常に小さな画像にのみ役立ちます。 Base64エンコードファイルは元のファイルよりも大きくなります。利点は、別の接続を開いて、イメージのサーバーにHTTPリクエストを行う必要がないことです。この利点はすぐに失われるため、非常に小さな個々の画像が多数ある場合にのみ利点があります。
mIME準拠のBase64エンコードバイナリデータの実際の長さは通常、元のデータ長の約137%です。ただし、非常に短いメッセージの場合、ヘッダーのオーバーヘッドによりオーバーヘッドがはるかに大きくなる可能性があります。おおよそ、Base64でエンコードされたバイナリデータの最終サイズは、元のデータサイズの1.37倍+ 814バイト(ヘッダーの場合)です。
つまり、デコードされたデータのサイズは、次の式で概算できます。
bytes = (string_length(encoded_string) - 814) / 1.37
以下のマイナス面のいくつかは、この投稿ですでに言及されています ハードファイルにリンクするだけでなく、Webサイトでインライン/ base64イメージを使用する方が高速ですか?
また、画像は通常のシナリオでasynを読み込むため、HTMLページの応答時間が長くなります。画像の読み込みが遅くなっても、テキストを見始めることができます。
メディアのみがCDNにキャッシュされている場合、CDNの別の利点は失われます。
その利点は失われます。