¿Por qué necesitamos el elemento de lienzo html5, cuando lo mismo se puede lograr a través de svg incorporado?elemento de lona html5 y svg
Respuesta
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 modelo y el cliente (JavaScript) debe encargarse de redibujar, animaciones, etc.
Porque entonces no es necesario preocuparse por lo que la incorporación de soporte, tal ;-)
De esta manera el foco para desarrolladores de aplicaciones es adherirse a las normas y dejar que los diseñadores de los clientes hagan lo mismo. y por lo tanto evite que todos se preocupen por complementos, versiones, configuraciones de seguridad, etc. ...
si el navegador puede soportar el espacio de nombres svg, como lo hace gecko, tampoco debería preocuparse, con el hecho adicional de que en SVG realmente tiene un DOM para manipular. –
Y si el navegador es compatible con HTML5, pero no con el espacio de nombres SVG, ¿como IE probablemente lo haga? – ceejayoz
Simplemente use SVGWeb para IE, es realmente bastante fácil. http://code.google.com/p/svgweb/ –
http://people.mozilla.com/~vladimir/xtech2006/ tiene buena comparación.
Con lienzo, no tiene que lidiar con el DOM, lo que hace que el código sea más rápido y fácil de escribir. SVG es un desastre también como una especificación ...
Aquí tienes un enlace podrido ... ¿hay un enlace alternativo? –
@TimPost: No, pero alguien en mozilla podría tener. Esta presentación está vinculada desde https://developer.mozilla.org/en/XTech_2006_Presentations ... – Nickolay
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.
El lienzo 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.
una ilustración: el motor de mi blog (blogger) no es compatible con SVG (no es un documento XHTML). Escribí una herramienta de conversión de SVG para el elemento canvas: http://plindenbaum.blogspot.com/2009/11/tool-converting-svg-to-canvas_22.html
Aquí es una explicación de cómo analizar un SVG simple y dibujar 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-lona-y-SVG-II/
en posteriores mensajes del analizador SVG se completará con transparencias y gradientes
Olvidé decir que las publicaciones están en español, pero puede obtener el código de ejemplo completo aquí: http: //www.ikeralbeniz. net/wp-content/uploads/2010/11/test.html – iker
también puede encontrar esta comparación útil: http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
Esto 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 bien y de manera eficiente en lugar de una mega herramienta haciendo muchas cosas.(También es similar a la filosofía sostenida por muchos corredores de bicicletas de piñón fijo que evitan la tecnología de cambio muy precisa y avanzada para la simplicidad de un engranaje de transmisión directa.)
No me malinterpreten, creo que XML es increíblemente poderoso y una tecnología 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 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.
Largo plazo Me gustaría ver que SVG haga que XML sea opcional y pasar 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 Canvas basado en vectores. Esa sería la mejor solución para la web en mi opinión.
- 1. HTML5 imagen Drenaje LONA
- 2. HTML5 Tamaño de la lona y resolución
- 3. HTML5 caso de lona clic
- 4. Html5 arrastrar y soltar en el elemento svg
- 5. Dibujar ruta en la lona con los datos de ruta SVG (caminos SVG a rutas de lona)
- 6. jQuery elemento SVG animado
- 7. outerHTML de un elemento SVG
- 8. Existe una brecha 4 píxeles por debajo de los elementos de audio de lona/vídeo/HTML5 en
- 9. Diagramas en SVG frente a HTML5 Canvas
- 10. Canvas HTML5 o mapa mundial SVG
- 11. ¿Método para convertir lienzo HTML5 a SVG?
- 12. Dibujar SVG en HTML5 Lienzo con soporte para el elemento de fuente
- 13. SVG obtener ancho de elemento de texto
- 14. Silverlight: Desbordamientos de lona
- 15. JavaScript createElement y SVG
- 16. Cómo tratar eficazmente con una gran cantidad de HTML5 datos de píxeles lona sobre websockets
- 17. Diferencias entre Polígono y Polilínea en SVG
- 18. Encuadernación de lona en silverlight
- 19. imagen Lona Suavizar
- 20. Agregar elementos SVG o HTML5 existentes a Box2D World
- 21. Cómo deshabilitar seleccionar elemento de lienzo html5
- 22. Aplicación web en SVG, problemas de rendimiento y viabilidad
- 23. HTML5, canvas y strokeRect: líneas más angostas?
- 24. SVG <script> elemento: por dentro o por fuera?
- 25. html5 - elemento de lienzo - Varias capas
- 26. Degradado rectangular con elemento de lienzo HTML5
- 27. ¿Cuáles son los pros y los contras de HTML5 Canvas vs. SVG + Raphael.js?
- 28. html5: copiar un lienzo de la imagen y volver
- 29. brillo y el contraste de una imagen Lona con javascript
- 30. IE9, IE8, SVG, VML y doctypes
Jennifer Yu dice que SVG es ideal para alta resolución y Canvas es para animación rápida. Se recomienda el uso de ambos, uno encima de otro en este video de mezcla 11: http://media.ch9.ms/ch9/FDB1/595AD4A8-9399-439C-840A-9EAF0092FDB1/MIX11HTM15_high_ch9.mp4 –
Técnicamente tienes razón , no son intercambiables debido a la diferencia entre gráficos vectoriales y de trama. ¿Pero puede decirme una cosa que puedo mostrar al usuario final con una que no puedo mostrar con la otra? Creo que de hecho son completamente intercambiables en lo que respecta al usuario final. –