canvas和svg的区别
canvas是由Apple私有技术发展而来的,是从小众发展到广泛的被接受,注重的栅格图像处理。使用JavaScript程序绘图(动态生成),是基于像素(动态点阵图),目前只能提供2D绘制函数,是一种HTML的元素类型,依赖于HTML,只能通过脚本绘制图像,但是目前只有主流的浏览器和IE9+以上的浏览器兼容。
svg是一套独立的矢量图形语言,在2003年的时候成为w3c标准,发展比较缓慢,近10年没有较大的更新,svg更适合用来做动态交互,而且svg绘图更容易编辑,只需要增加或者移除相应的元素就可以了,不过svg功能更加的丰富,主流浏览器和IE9+,其他的svg都进行兼容。
总结:
canvas VS svg
canvas:1.依赖分辨率 2.不支持事件处理器 3.弱的文本渲染能力 4.能够以.png或者.jpg的方式保存结果图像5.最适合密集型的游戏,其中的许多对象会被频繁的重绘。
svg:1.不支持分辨率2.支持事件处理器3.最适合在带有大型渲染区域的应用程序(比如谷歌地图)4.复杂度高会减慢渲染速度,svg是基于DOM操作的,任何过度使用DOM的应用都会减慢渲染速度5.不适合游戏应。