buduję się wizualizacji opartej SVG, że (częściowo) opiera się na pokazaniu wielu zdjęć w krótkich odstępach czasu. Obrazów nie można pobrać wystarczająco szybko z sieci, więc muszą być wstępnie załadowane.Najlepszy sposób na wstępne ładowanie znaczników obrazów SVG?
Rozumiem, że SVG nie odpowiednio buforować image
tagów, przynajmniej w głównych przeglądarkach. Zatem wstępne wczytywanie skryptów JavaScript i techniki (np. this SO question) nie będzie działać. (Mogłem uciekać się do korzystania warstwowej HTML img
tagów, ale ze względu na specyfikę mojej aplikacji, chciałbym trzymać się czystej SVG jak najwięcej)
widzę dwie opcje:
- kodującego dane PNG obraz jako base64, przechowywanie go w pamięci jako ciągi i korzystania z ciągów iteracyjnie zapełnić
image
tagów za pomocądata:image/png;base64
. - Nakładanie wielu grup SVG na szczycie siebie wszystko, ale z jednego zestawu do
display: none
lubvisibility: hidden
i iteracyjnie odkrywania odpowiednią grupę. Jednak uważam, że nie będzie możliwe programowe wykrycie, że wszystkie obrazy zakończyły wstępne ładowanie.
Jaki jest najlepszy sposób wstępnego ładowania danych obrazu? Być może brakowało mi łatwiejszej opcji.
Czy Twój vis muszą być * ALL * SVG? Jeśli nie, możesz wstępnie załadować obrazy jako HTML, a następnie nałożyć je na ... Nie zadziała, jeśli potrzebujesz ich w pełni zintegrowanej, np. zastosować ścieżki klipów. – nrabinowitz
Tak, jak wspomniałem w moim pytaniu, wolałbym, gdyby to było wszystko SVG. (w przeciwnym razie musiałbym podzielić mój viz na dwie warstwy SVG, aby warstwa obrazu była między nimi warstwowana) –