Pergunta

Por que precisamos do elemento canvas do HTML5, quando o mesmo pode ser alcançado através SVG incorporado?

Foi útil?

Solução

SVG e lona não são realmente tecnologias intercambiáveis. SVG é um tipo de gráficos modo retidos onde tudo é desenhado a partir de um modelo bastante abstrato (o documento SVG). Canvas por outro lado, é uma espécie de modo imediato gráficos, onde não existe um modelo eo cliente (JavaScript) deve cuidar de redesenho, animações etc.

Outras dicas

SVG é uma linguagem de marcação para gráficos vetoriais e tem DOM. Isto torna muito fácil de alterar o conteúdo após a sua criação.

Canvas é uma superfície de pintura assim como o MS Paint, sem um botão de desfazer. Você não pode alterar o conteúdo. Você só pode overpaint-lo. É muito alto desempenho porque o navegador não precisa lidar com um DOM completo para a imagem. E há uma possibilidade de que tela consegue lidar com desenho 3D no futuro.

http://people.mozilla.com/~vladimir/xtech2006/ tem comparação agradável.

Com tela você não tem que lidar com o DOM, o que leva a mais rápida e mais fácil de escrever código. SVG é uma bagunça como uma especificação, também ...

uma ilustração: Meu mecanismo de blog (blogger) não suporta SVG (não é um documento XHTML). Eu escrevi uma ferramenta de conversão de SVG para o elemento canvas: http : //plindenbaum.blogspot.com/2009/11/tool-converting-svg-to-canvas_22.html

Aqui está uma explicação de como analisar um SVG simples e desenhá-la em uma tela ..

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/

em outras mensagens o analisador SVG será completada com transparências e gradientes

Você também pode encontrar este comparação útil: http://dev.opera.com/ artigos / view / svg-ou-canvas escolhendo-entre-dois-/

Porque então não precisa se preocupar com o que suportar tal incorporação; -)

Desta forma o foco para programadores de aplicações é a aderir a padrões e deixar os designers cliente fazer o mesmo. e todos, portanto, livre para se preocupar com os plug-ins, versões, configurações de segurança, etc ...

Isto não é realmente uma resposta técnica, mas eu acho que é a resposta correta.

A linha inferior é que não precisamos de ambos. Sim, eu sei que há diferenças entre gráficos vetoriais e raster e maneiras diferentes de caminhos de controle, objetos, animações, etc. entre os dois, mas para o usuário final é tudo o mesmo. Sim, SVG é um pouco mais forte agora por causa de sua maior existência, mas com um pouco mais de trabalho que você pode fazer as mesmas coisas com lona.

Eu acredito que a realidade é lona é parte de uma reação esmagadora contra si mesmo XML em desenvolvimento web. Eu acredito que a maioria dos desenvolvedores web, especialmente aqueles que trabalham com tempo e recursos limitados, fora ambientes "empresa", não gostam da complexidade do XML. A lona é parte de um conjunto de tecnologias just-fazer-uma-coisa preferenciais assim como HTML5 é preferido sobre XHTML, JSON é preferido sobre XML, e até mesmo YAML é preferido sobre XML.

Eu acho que a idéia é semelhante à filosofia * nix de ter muitas ferramentas específicas fazendo uma coisa certa e eficiente, em vez de uma ferramenta de mega fazer muitas coisas. (Também é semelhante à filosofia defendida por muitos pilotos Mudança de bicicleta fixos que evitam tecnologia desviador incrivelmente precisa e avançada para a simplicidade de uma engrenagem de acionamento direto.)

Não me entenda errado, eu acredito que XML é uma tecnologia incrivelmente poderosa e brilhante pensado e desenvolvido por pessoas brilhantes para ser o exército faca suíça final da web, programação, configuração, armazenamento de dados, etc; mas isso não significa que é mais fácil de gerenciar e estilo uma série de caminhos complexos do que está a apenas desenhar pixels em um.

Eu sei que a minha resposta é opinativo e não pretendo que isso seja uma chama. Eu amo SVG e gostaria que teria conseguido mais apoio ao longo dos anos (especialmente a partir de IE), mas eu sinto a maré virar para Canvas simplesmente devido à psicologia dos padrões setters e os desenvolvedores web que os influenciam.

Longo prazo Eu gostaria de ver SVG make opcional XML e passar para um mais JSON-como a estrutura que é mais simples de manipular com JavaScript, talvez até mesmo se tornar um contexto Canvas baseado em vetor. Essa seria a melhor solução para a web na minha opinião.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top