2012-06-08 31 views
6

usuarios stackoverflowCanvas versus DOM: ¿Cuál es el método de visualización de imágenes más eficiente en HTML5?

Al hacer una aplicación HTML5/sitio web, para los casos tales como una galería de imágenes, donde un gran número de imágenes se visualizan secuencialmente o al mismo tiempo en el navegador, es el uso del elemento canvas justificado ?

Mientras solo estamos hablando de presentar una imagen, ¿tiene sentido utilizar un lienzo y dibujar la imagen en él en lugar de utilizar el elemento DOM < img> tag? También habrá manipulación de la imagen, como las transformaciones/movimiento/escala/zoom de CSS3 y el reconocimiento de gestos (arrastre, toque/toque, tal vez pellizco, etc.) que, hasta donde yo sé, son aplicables tanto al lienzo como al etiquetas img

También sería importante mantener las cosas lo más "html5" -ish posible y también teniendo en cuenta el rendimiento. Por ejemplo, importaría si en el futuro el elemento de lienzo será cada vez más utilizado y optimizado por los navegadores y también importaría si por el momento el < img> es mucho más rápido.

Como estamos considerando desarrollar una aplicación universal html5, trabajando en computadoras de escritorio y también en dispositivos móviles, el rendimiento y la velocidad son un factor muy importante. Sin embargo, las pruebas que comparaban canvas y < img> tenían como objetivo principalmente los juegos de navegador JavaScript. En este caso, la animación no es tan importante como el consumo de memoria y el rendimiento general.

¿Existen recursos/estudios con respecto a este aspecto en particular?

Respuesta

1
UseCanvas = NeedCanvas ? true : false 

Realmente no necesita lienzo para esta operación, y tardará más tiempo en desarrollarse con lienzo, ya que es mucho más complicado.

El uso de las etiquetas <img> con javascript no solo aumentará la compatibilidad sino también la velocidad y la accesibilidad: absolutamente todo con un navegador puede ejecutar CSS y Javascript. Además, también hay factores de SEO, estoy bastante seguro de que las imágenes de un lienzo no se indexarán.

No utilice la tecnología HTML5 para utilizar la tecnología HTML5. Cuando desee comenzar a deformar las imágenes y hacer que el usuario dibuje sobre ellas para que pueda exportar/guardar, allí es donde necesita un lienzo.

+0

El SEO no es realmente un factor aquí, solo el rendimiento. Estoy de acuerdo con lo que dijiste sobre no usar HTML5 solo por el hecho de usarlo. La cosa es que también tengo que tener en cuenta lo que podría ser útil en el futuro y todos sabemos que html5 es el futuro. Por supuesto, nadie sabe lo que depara el futuro, pero noté aplicaciones similares usando lienzos y me hizo preguntarme por qué y si hay alguna ventaja sobre el uso obvio de < img > – BBog

+1

@BogdanBucur - 'img' es tanto HTML5 como' canvas 'es! Era parte de HTML4, una construcción de HTML5 además de eso. Es tan parte del "futuro" como cualquier otra cosa. –

+1

@BogdanBucur '' es una parte fundamental de HTML, no va a ningún lado ** nunca **. Lo que ha descrito es una galería de imágenes muy simple, el lienzo es realmente para juegos, ya menos que esté construyendo un juego complicado con bucles, física, estados, etc., realmente no hay necesidad de usarlo. Le sugiero que mire algunos ejemplos de jQuery para ver su poder y se dará cuenta de que no lo necesita para los efectos que ha mencionado. – Dunhamzzz

Cuestiones relacionadas