不同點:1、畫布依賴分辨率,而SVG不依賴分辨率;2、畫布不支持事件處理器,SVG支持事件處理器;3、畫布適合圖像密集型的游戲應用,SVG不適合游戲應用;4、svg是通過XML定義的,而Canvas是通過javascript定義的。
本教程操作環境:windows7系統、HTML5版、Dell G3電腦。
Canvas(畫布)是Javascript進行繪圖的,是逐像素繪圖。Canvas一旦圖象繪制完成,就于瀏覽器無關了,圖象的位置發生變化,整個場景都需要重新重新繪制,包括已經被覆蓋的元素。
svg是使用xml繪制,可以為svg添加javascript的事件處理器。所有的DOM都是可用的,屬性發生變化,瀏覽器會自動重新繪制。
SVG和Canvas的不同:
Canvas(畫布)
-
依賴分辨率
-
不支持事件處理器
-
弱的文本渲染能力
-
能夠以 .png 或 .jpg 格式保存結果圖像
-
最適合圖像密集型的游戲,其中的許多對象會被頻繁重繪
-
Canvas是通過javascript定義的。
SVG
-
不依賴分辨率
-
支持事件處理器
-
最適合帶有大型渲染區域的應用程序(比如谷歌地圖)
-
復雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)
-
不適合游戲應用
-
svg是通過XML定義的