Frage

Warum wir das html5 Canvas-Element benötigen, wenn das gleiche kann durch eingebettete svg erreicht werden?

War es hilfreich?

Lösung

SVG und Canvas sind nicht wirklich austauschbar Technologien. SVG ist eine Art von Retained Mode Grafiken, wo alles von einem eher abstrakten Modell gezeichnet wird (das SVG-Dokument). Leinwand auf der anderen Seite ist eine Art unmittelbaren Modus Grafiken, in denen es kein Modell ist und die Client (JavaScript) muss kümmern sich um neu zu zeichnen, Animationen etc.

Andere Tipps

SVG ist eine Auszeichnungssprache für Vektorgrafiken und hat DOM. Dies macht es sehr einfach, den Inhalt nach seiner Gründung zu verändern.

Canvas ist ein Malgrund wie MS Paint ohne Undo-Taste. Sie können den Inhalt nicht verändern. Sie können es nur übermalen. Es ist sehr performant, da der Browser einen kompletten DOM für das Bild zu verarbeiten nicht braucht. Und es gibt eine Möglichkeit, dass Leinwand handhaben kann 3D in der Zukunft zu ziehen.

http://people.mozilla.com/~vladimir/xtech2006/ schön Vergleich hat.

Mit Leinwand Sie müssen nicht mit dem DOM beschäftigen, was zu einem schnelleren führt und einfachen Code zu schreiben. SVG ist ein Chaos als Spezifikation, auch ...

eine Darstellung: Meine Blog-Engine (Blogger) nicht unterstützt SVG (es ist kein XHTML-Dokument). Ich schrieb ein Werkzeug SVG auf das Canvas-Element konvertieren: http : //plindenbaum.blogspot.com/2009/11/tool-converting-svg-to-canvas_22.html

Hier ist eine Erklärung dafür, wie ein einfaches svg zu analysieren und sie auf einer Leinwand ziehen ..

http: // www .ikeralbeniz.net / 2010/11/03 / jugando-con-html5-Leinwand-y-svg-i / http://www.ikeralbeniz.net/2010/11/04/jugando-con-html5-canvas-y-svg-ii/

in weiteren Posts wird der SVG-Parser mit Transparenzen und Verläufe abgeschlossen werden

Weil wir dann brauchen keine Sorgen zu machen, was eine solche Einbettung unterstützen; -)

Auf diese Weise der Fokus für die Anwendung developpers ist an Standards zu halten und lassen Sie die Client-Designer das gleiche tun. und damit jedes verschonen über Plug-In sorgen, Versionen, Sicherheitseinstellungen, etc ...

Das ist nicht wirklich eine technische Antwort, aber ich denke, es ist die richtige Antwort.

Das Endergebnis ist, dass wir beide nicht brauchen. Ja ich weiß, es gibt Unterschiede zwischen Vektor- und Rastergrafiken und verschiedene Möglichkeiten, Wege zu steuern, Objekte, Animationen, usw. zwischen den beiden, sondern dem Endbenutzer alle ist es das gleiche. Ja, SVG ist ein wenig mächtiger jetzt wegen seiner längeren Existenz aber mit ein wenig mehr Arbeit, die Sie die gleichen Dinge mit Leinwand tun können.

Ich glaube, die Realität ist, Canvas Teil einer überwältigenden Reaktion gegen XML selbst in Web-Entwicklung ist. Ich glaube, dass die meisten Web-Entwickler, vor allem diejenigen mit wenig Zeit zu arbeiten und Ressourcen, außerhalb „Unternehmen“ Umgebungen, nicht mag die Komplexität von XML. Canvas ist Teil einer Reihe von bevorzugten Just-do-one-Sache-Technologien wie HTML5 über XHTML bevorzugt ist, ist JSON über XML bevorzugt, und sogar YAML ist über XML bevorzugt.

Ich denke, die Idee der * nichts Philosophie ist ähnlich viele spezifischen Werkzeuge, die richtige Sache zu tun und effizient anstatt ein mega-Tool viele Dinge zu tun. (Es ist auch ähnlich wie die Philosophie von vielen reparierten Zahnradfahrradfahrern gehalten, die meiden unglaublich präzise und fortschrittliche Technologie Umwerfer für die Einfachheit eines Direktantriebszahnrad.)

Sie mich nicht falsch, ich glaube, XML eine unglaublich leistungsfähige und brillante Technik ist erdacht und entwickelt von brillanten Menschen das ultimative Schweizer Armee-Messer der Bahn, Programmierung, Konfiguration, Datenspeicherung, usw. zu sein; aber das bedeutet nicht, dass es einfacher ist, eine Reihe von komplexen Pfaden zu verwalten und Stil, als es ist nur Pixel auf einem Unentschieden.

Ich weiß, dass meine Antwort ist eigenwillig und ich dies nicht die Absicht, eine Flamme zu sein. Ich liebe SVG und ich wünsche es wäre mehr Unterstützung im Laufe der Jahre bekommen hat (vor allem von IE), aber ich fühle die Flut in Richtung Leinwand dreht einfach aufgrund der Psychologie von Standardsetzern und dem Web-Entwickler, die sie beeinflussen.

Langzeit Ich mag würde, um zu sehen SVG XML optional machen und zu einer JSON-ähnlicher Struktur bewegen, die einfacher sind mit JavaScript zu manipulieren, vielleicht sogar ein vektorbasiertes Leinwand Kontext wird. Das wäre die beste Lösung für das Web meiner Meinung nach sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top