Il mio progetto ha una tela HTML5 su cui gli oggetti grafici sono disegnati ripetutamente. Questi oggetti cambiano rapidamente. Disegnarli richiede tempo. Come posso renderlo più veloce?HTML5 Canvas: migliore per ri-disegnare oggetti o usare bitmap?
Gli oggetti non sono eccessivamente complessi ma contengono oggetti come archi, gradienti, poligoni.
L'aspetto di un oggetto dipende da circa 10 proprietà, ognuna con uno di circa 10 valori. Ciò significa che ci sono solo circa 100 diverse apparizioni rispetto a quelle che un oggetto può avere. Ecco perché sto pensando solo a disegnare ogni aspetto una volta e poi a mettere in cache una bitmap per il riutilizzo.
Tutto deve lavorare sul client (vale a dire che non può usare immagini ready-made)
- Quale sarebbe il modo migliore per fare questo con HTML5 Canvas?
- È una buona idea o il sovraccarico di lavorare con le immagini bitmap è maggiore del ridisegno degli oggetti ogni volta?
Ho provato i tuoi demo e su Firefox7 su win7 non riuscivo a vedere una gran differenza tra il caching e il non caching. Sono ancora d'accordo con l'uso della cache perché quando si disegnano "oggetti" (poligoni/gradienti) la memorizzazione nella cache è MOLTO più veloce. Il motivo per cui ruotare è molto più veloce quando il caching è dovuto al supporto delle API di rendering dei nuovi browser – Niko
Inoltre, questo articolo è fantastico per i suggerimenti sulle prestazioni del canvas: http://www.html5rocks.com/en/tutorials/canvas/performance/ –
@Niko Ho bisogno di aggiornare il mio demo è piuttosto vecchio ora, i guadagni di prestazioni principali che vedete è quando si aggiungono alcune centinaia di più sullo schermo. – Loktar