web-dev-qa-db-ja.com

base64でエンコードされた画像を使用する利点と欠点

ロード時間を最適化するために作業しているサイトにbase64でエンコードされた画像を使用することを考えています。

とにかく、始める前に、これを行うことの利点と欠点は何ですか?

現時点では、デメリットはありませんが、あまり頻繁に使用される手法ではなく、見逃していないのではないかと思います。

主題をグーグル検索した後、私は明確なものを見つけられなかったので、私はここで尋ねることにしました。

40
zozo

非常に小さな画像にのみ役立ちます。 Base64エンコードファイルは元のファイルよりも大きくなります。利点は、別の接続を開いて、イメージのサーバーにHTTPリクエストを行う必要がないことです。この利点はすぐに失われるため、非常に小さな個々の画像が多数ある場合にのみ利点があります。

43
PhonicUK

mIME準拠のBase64エンコードバイナリデータの実際の長さは通常、元のデータ長の約137%です。た​​だし、非常に短いメッセージの場合、ヘッダーのオーバーヘッドによりオーバーヘッドがはるかに大きくなる可能性があります。おおよそ、Base64でエンコードされたバイナリデータの最終サイズは、元のデータサイズの1.37倍+ 814バイト(ヘッダーの場合)です。

つまり、デコードされたデータのサイズは、次の式で概算できます。

bytes = (string_length(encoded_string) - 814) / 1.37

ソース: http://en.wikipedia.org/wiki/Base64#MIME

12
vimist

以下のマイナス面のいくつかは、この投稿ですでに言及されています ハードファイルにリンクするだけでなく、Webサイトでインライン/ base64イメージを使用する方が高速ですか?

  • ほとんどの形式のキャッシングは、画像が頻繁に表示されると大きな打撃を受ける可能性があります。たとえば、すべてのページに表示されるロゴは、通常はブラウザによってキャッシュされます。
  • より多くのCPU使用率。
4
Anmol Saraf

また、画像は通常のシナリオでasynを読み込むため、HTMLページの応答時間が長くなります。画像の読み込みが遅くなっても、テキストを見始めることができます。

メディアのみがCDNにキャッシュされている場合、CDNの別の利点は失われます。

その利点は失われます。

3
Techmaster