canisue - elemento de lona html5 y svg
html5 support (8)
¿Por qué necesitamos el elemento lienzo html5, cuando lo mismo se puede lograr a través de svg incorporado?
Aquí hay una explicación de cómo analizar un svg simple y dibujarlo en un lienzo.
http://www.ikeralbeniz.net/2010/11/03/jugando-con-html5-canvas-y-svg-i/ http://www.ikeralbeniz.net/2010/11/04/jugando-con- html5-canvas-y-svg-ii /
en otras publicaciones, el analizador svg se completará con transparencias y degradados
Esta no es realmente una respuesta técnica, pero creo que es la respuesta correcta.
La conclusión es que no necesitamos ambos. Sí, sé que existen diferencias entre los gráficos vectoriales y de trama y las diferentes formas de controlar las rutas, objetos, animaciones, etc. entre los dos, pero para el usuario final es todo lo mismo. Sí, SVG es un poco más poderoso en este momento debido a su existencia más larga, pero con un poco más de trabajo puedes hacer las mismas cosas con Canvas.
Creo que la realidad es que Canvas es parte de una abrumadora reacción en contra del propio XML en el desarrollo web. Creo que a la mayoría de los desarrolladores web, especialmente aquellos que trabajan con tiempo y recursos limitados, fuera de entornos "empresariales", les desagrada la complejidad de XML. Canvas es parte de un conjunto de tecnologías preferidas de solo hacer una cosa, al igual que HTML5 es preferible a XHTML, JSON es preferible a XML, e incluso YAML es preferible a XML.
Creo que la idea es similar a la filosofía * nix de tener muchas herramientas específicas haciendo una cosa de manera correcta y eficiente en lugar de una mega herramienta haciendo muchas cosas. (También es similar a la filosofía sostenida por muchos ciclistas de piñón fijo que evitan la tecnología de cambio muy precisa y avanzada para la simplicidad de un engranaje de mando directo).
No me malinterpreten, creo que XML es una tecnología increíblemente poderosa y brillante, pensada y desarrollada por personas brillantes para ser la última navaja suiza de la web, programación, configuración, almacenamiento de datos, etc .; pero eso no significa que sea más fácil administrar y diseñar una serie de rutas complejas que dibujar píxeles en a.
Sé que mi respuesta es obstinada y no pretendo que esto sea una llama. Me encanta SVG y me hubiera gustado obtener más soporte a lo largo de los años (especialmente de IE), pero siento que la marea se está volcando hacia Canvas simplemente debido a la psicología de los diseñadores de estándares y los desarrolladores web que los influencian.
A largo plazo, me gustaría ver que SVG haga que XML sea opcional y se mueva a una estructura más similar a JSON que sea más fácil de manipular con JavaScript, quizás incluso convirtiéndose en un contexto de Lienzo basado en vectores. Esa sería la mejor solución para la web en mi opinión.
Porque entonces no tenemos que preocuparnos por qué soporte incrustado ;-)
De esta manera, el enfoque para los desarrolladores de aplicaciones es adherirse a los estándares y dejar que los diseñadores del cliente hagan lo mismo. y por lo tanto evite que todos se preocupen por complementos, versiones, configuraciones de seguridad, etc.
SVG es un lenguaje de marcado para gráficos vectoriales y tiene DOM. Esto hace que sea muy fácil alterar el contenido después de su creación.
Canvas es una superficie de pintura al igual que MS Paint sin un botón para deshacer. No puedes alterar el contenido. Solo puedes pintarlo en exceso. Es muy eficiente porque el navegador no necesita manejar un DOM completo para la imagen. Y existe la posibilidad de que Canvas pueda manejar dibujos en 3D en el futuro.
También puede encontrar útil esta comparación: http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
una ilustración: el motor de mi blog (blogger) no es compatible con SVG (no es un documento XHTML). Escribí una herramienta para convertir SVG al elemento canvas: http://plindenbaum.blogspot.com/2009/11/tool-converting-svg-to-canvas_22.html
http://people.mozilla.com/~vladimir/xtech2006/ tiene una buena comparación.
Con lienzo, no tiene que lidiar con el DOM, lo que lleva a un código más rápido y fácil de escribir. SVG es un desastre como una especificación, también ...
SVG y canvas no son realmente tecnologías intercambiables. SVG es un tipo de gráficos de modo retenido en el que todo se extrae de un modelo bastante abstracto (el documento SVG). Canvas, por otro lado, es un tipo de gráficos de modo inmediato, donde no hay un modelo y el cliente (JavaScript) debe encargarse de redibujar, animaciones, etc.