Sto costruendo una visualizzazione SVG-based (parzialmente) si basa sul mostrare molte immagini in rapida successione. Le immagini non possono essere recuperate abbastanza velocemente dalla rete, quindi devono essere precaricate.Il modo migliore per precaricare i tag immagine SVG?
mia comprensione è che SVG non memorizza nella cache correttamente image
tag, almeno nei principali browser. Pertanto, il caricamento e il caricamento precaricato di JavaScript di librairies e tecniche (ad esempio this SO question) non funzionerà. (Potrei ricorrere all'utilizzo di strati HTML img
tag, ma a causa delle specificità della mia domanda, vorrei attenersi a pura SVG per quanto possibile)
Vedo due opzioni:
- che codificano per le i dati delle immagini PNG come Base64, memorizzazione nella memoria come stringhe e che utilizzano le stringhe per compilare in modo iterativo
image
tag utilizzandodata:image/png;base64
. - stratificazione molti gruppi SVG uno sopra l'altro con tutti, ma un insieme di
display: none
ovisibility: hidden
e unhiding iterativamente il gruppo appropriato. Tuttavia, credo che non sia possibile rilevare in modo programmatico che tutte le immagini abbiano terminato il pre-caricamento.
Qual è il modo migliore per precaricare i dati dell'immagine? Forse ho perso un'opzione più semplice.
La vostra vis devono essere * tutti * SVG? In caso contrario, potresti essere in grado di precaricare le immagini come HTML, quindi sovrapporle alla vis ... Non funzionerà se ti occorrono pienamente integrati, ad es. per applicare percorsi di clip. – nrabinowitz
Sì, come ho detto nella mia domanda, preferirei di gran lunga se fosse tutto SVG. (altrimenti, mi richiederebbe dividere il mio giudizio in due livelli SVG in modo che il livello dell'immagine sia stratificato tra loro) –