2012-06-08 15 views
6

utenti StackOverflowCanvas vs DOM - Qual è il metodo di visualizzazione delle immagini più efficiente in HTML5?

Pur facendo un'applicazione HTML5/sito web, per tali casi, come una galleria di immagini, in cui vengono visualizzati un gran numero di immagini in sequenza o contemporaneamente nel browser, è l'uso dell'elemento canvas giustificato ?

Finché si tratta solo di presentare un'immagine, è possibile utilizzare una tela e disegnare l'immagine su di essa anziché utilizzare l'elemento DOM < img> tag? Ci saranno anche alcune manipolazioni dell'immagine, come trasformazioni CSS3/spostamento/ridimensionamento/zoom e riconoscimento dei gesti (trascinamento, tocco/tocco, forse pizzico, ecc.) Che, per quanto ne so, sono applicabili sia alla tela che al tag img.

Sarebbe anche importante mantenere le cose il più "html5" -ish possibile e tenendo conto anche delle prestazioni. Ad esempio, sarebbe importante se in futuro l'elemento canvas fosse sempre più utilizzato e ottimizzato dai browser e sarebbe importante anche se per il momento lo < img> sia molto più veloce.

Poiché stiamo considerando lo sviluppo di un'applicazione html5 universale, lavorando su desktop e anche su dispositivi mobili, le prestazioni e la velocità sono un fattore molto importante. Tuttavia, i test di confronto su tela e < img erano rivolti principalmente ai browser game javascript. In questo caso, l'animazione non è così importante come il consumo di memoria e le prestazioni generali.

Esistono risorse/studi relativi a questo aspetto particolare?

risposta

1
UseCanvas = NeedCanvas ? true : false 

Non hai davvero bisogno di tele per questa operazione, e ci vorrà più tempo per svilupparlo con la tela perché è molto più complicato.

L'utilizzo dei tag <img> con javascript non solo aumenterà la compatibilità, ma anche la velocità e l'accessibilità - assolutamente tutto con un browser può eseguire CSS e Javascript. Inoltre ci sono anche fattori SEO, sono abbastanza sicuro che le immagini in una tela non vengano indicizzate.

Non utilizzare la tecnologia HTML5 per l'utilizzo della tecnologia HTML5. Quando vuoi iniziare a deformare le immagini e farle disegnare dall'utente in modo che tu possa esportare/salvare, è lì che hai bisogno di tela.

+0

Il SEO non è davvero un fattore qui, solo prestazioni. Sono d'accordo con quello che hai detto sul non usare HTML5 solo per il gusto di usarlo. Il fatto è che devo anche prendere in considerazione ciò che potrebbe essere utile in futuro e sappiamo tutti che html5 è il futuro. Naturalmente, nessuno sa cosa riserva il futuro, ma ho notato app simili usando canvas e mi ha fatto chiedere perché e se c'è qualche vantaggio rispetto all'ovvio uso di < img > – BBog

+1

@BogdanBucur - 'img' è tanto HTML5 quanto' canvas 'è! Era parte di HTML4, un build HTML5 in cima a quello. È parte del "futuro" come qualsiasi altra cosa. –

+1

@BogdanBucur '' è una parte fondamentale di HTML, non sta andando da nessuna parte ** sempre **. Quello che hai descritto è una galleria di immagini molto semplice, la tela è davvero per i giochi e, a meno che tu non stia costruendo un gioco complicato con loop, fisica, stati, ecc., Non è assolutamente necessario usarlo. Ti suggerisco di guardare alcuni esempi di jQuery per vedere che è potente e ti renderai conto che non ne hai bisogno per gli effetti che hai menzionato. – Dunhamzzz

Problemi correlati