Question

Pourquoi avons-nous besoin de l’élément canvas html5 alors qu’il est possible d’obtenir la même chose avec svg intégré?

Était-ce utile?

La solution

SVG et canvas ne sont pas vraiment des technologies interchangeables. SVG est un type de graphique en mode conservé où tout est tiré d’un modèle plutôt abstrait (le document SVG). En revanche, Canvas est une sorte de graphique en mode immédiat, où il n’existe aucun modèle et où le client (JavaScript) doit s’occuper du redessinage, des animations, etc.

Autres conseils

SVG est un langage de balisage pour les graphiques vectoriels et possède DOM. Cela facilite grandement la modification du contenu après sa création.

Canvas est une surface de peinture, tout comme MS Paint, sans bouton Annuler. Vous ne pouvez pas modifier le contenu. Vous pouvez seulement le peindre. Il est très performant car le navigateur n’a pas besoin de gérer un DOM complet pour l’image. Et il est possible que canvas puisse gérer le dessin 3D à l'avenir.

http://people.mozilla.com/~vladimir/xtech2006/ a une belle comparaison.

Avec canvas, vous n’avez pas à vous soucier du DOM, ce qui permet d’écrire du code plus rapidement et plus facilement. SVG est un gâchis comme spécification aussi ...

une illustration: mon moteur de blog (blogger) ne prend pas en charge SVG (ce n'est pas un document XHTML). J'ai écrit un outil convertissant SVG en élément canvas: http : //plindenbaum.blogspot.com/2009/11/tool-converting-svg-to-canvas_22.html

Voici une explication sur la façon d’analyser un simple svg et de le dessiner sur une toile.

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/

dans d'autres publications, l'analyseur svg sera complété par des transparents et des dégradés

vous pouvez également trouver cette comparaison utile: http://dev.opera.com/ articles / voir / svg-ou-toile-choisir-entre-deux /

Parce que nous n’avons alors plus besoin de nous soucier de la prise en charge de cette intégration; -)

De cette manière, les développeurs d’applications doivent se conformer à des normes et laisser les concepteurs clients faire de même. et par conséquent, évitez à tout le monde de s’inquiéter des plug-ins, des versions, des configurations de sécurité, etc.

Ce n’est pas vraiment une réponse technique, mais je pense que c’est la bonne réponse.

En bout de ligne, nous n’avons pas besoin des deux. Oui, je sais qu'il existe des différences entre les graphiques vectoriels et graphiques et différentes manières de contrôler les chemins, les objets, les animations, etc., mais pour l'utilisateur final, c'est tout de même. Oui, SVG est un peu plus puissant en ce moment en raison de son existence longue, mais avec un peu plus de travail, vous pouvez faire la même chose avec Canvas.

Je pense que la réalité est que Canvas fait partie d’une réaction accablante contre XML dans le développement Web. Je crois que la plupart des développeurs Web, en particulier ceux qui travaillent avec un temps et des ressources limités, en dehors de "l'entreprise". environnements, n'aiment pas la complexité de XML. Canvas fait partie d'un ensemble de technologies "Tout en un", tout comme HTML5 est préféré à XHTML, JSON est préféré à XML et même YAML est préféré à XML.

Je pense que l’idée est similaire à la philosophie * nix qui consiste à avoir plusieurs outils spécifiques qui font une chose correctement et efficacement, plutôt qu’un méga-outil qui fait beaucoup de choses. (Cela ressemble également à la philosophie de nombreux cyclistes à engrenages fixes qui évitent la technologie de dérailleur incroyablement précise et avancée pour la simplicité d’un engrenage à entraînement direct.)

Ne vous méprenez pas, je pense que XML est une technologie incroyablement puissante et brillante, conçue et développée par des personnes brillantes pour être le couteau suisse ultime du Web, de la programmation, de la configuration, du stockage de données, etc. mais cela ne signifie pas qu'il soit plus facile de gérer et de styliser une série de chemins complexes que de dessiner des pixels sur un.

Je sais que ma réponse est fondée sur des opinions et je ne veux pas que ce soit une flamme. J'adore SVG et j'espère qu'il aura reçu plus de soutien au fil des ans (en particulier d'IE), mais je sens que le vent tourne vers Canvas simplement à cause de la psychologie des normalisateurs et des développeurs Web qui les influencent.

À long terme, j'aimerais que SVG rende XML facultatif et passe à une structure plus semblable à JSON, plus facile à manipuler avec JavaScript, devenant peut-être même un contexte Canvas basé sur un vecteur. Ce serait la meilleure solution pour le Web à mon avis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top