私は、(部分的に) 多くの画像をすばやく連続して表示することに依存する SVG ベースの視覚化を構築しています。画像はネットワークから十分な速さでフェッチできないため、事前にロードする必要があります。
image
私の理解では、少なくとも主要なブラウザーでは、SVG はタグを適切にキャッシュしていません。そのため、JavaScript プリロード ライブラリとテクニック (例: this SO question ) は機能しません。(階層化された HTMLimg
タグを使用することもできますが、アプリケーションの仕様により、できるだけ純粋な SVG に固執したいと思います)
2 つのオプションが表示されます。
- PNG 画像データを base64 としてエンコードし、それを文字列としてメモリに格納し、文字列を使用
image
してdata:image/png;base64
. - 多くの SVG グループを互いの上に重ねて、1 つを除くすべてをに設定する
display: none
かvisibility: hidden
、適切なグループを繰り返し非表示にします。ただし、すべての画像のプリロードが完了したことをプログラムで検出することはできないと思います。
画像データをプリロードする最良の方法は何ですか? おそらく、私はより簡単なオプションを逃しました。