哪个更好?为什么?RaphaelJS或HTML5 Canvas?

lee*_*d00 14 javascript html5 vector vector-graphics

我在互联网上找到了一个甚至可以与IE6一起使用的矢量库!

http://raphaeljs.com/index.html

太奇妙了.

现在我的问题是它比即将推出的HTML5 <canvas>更好吗?我要问的唯一原因是,微软实现一个不需要插件才能运行的<canvas>可能还需要几年的时间.

在互联网上的所有IE用户摆脱他们的旧浏览器之前,它甚至会更长,这样我们甚至可以证明使用HTML5 <canvas>.

我只是坚持标准,但由于MS的浏览器开发速度缓慢,这个问题需要花费太长时间.

思考?

Jan*_*nen 20

Raphael是一个矢量图形库,使用SVG完成,而HTML5 canvas是位图图形.

如果你想做矢量图形,我认为与Raphael相比可能是"just"画布的一个很好的选择.正如你所说,canvas并不适用于IE,它可能需要一段时间才能得到本机支持.如果拉斐尔做你需要的,没有特别的理由不使用它.

请注意,还有其他的库:Excanvas,使用VML模拟IE的画布(据我所知),还有一些其他人使用Silverlight和Flash做同样的事情,但我忘记了他们的名字.

还有Dojo,它有一个用于在易于使用的界面后面抽象画布用法的组件,它也支持IE.

在所有浏览器中使用本机画布不会使库过时,因为库通常会抽象出一些画布复杂性,使用起来更容易.

  • 表现是最大的不同.如果要绘制许多节点,SVG会减慢很多.这是SVG如何工作的固有结果.HTML5 Canvas性能主要取决于需要重绘的像素总数(宽x高). (5认同)

Lee*_*e B 5

您想要的是Google的SVGWeb(http://code.google.com/p/svgweb/).它使IE兼容SVG,这是标准,并且所有其他主流浏览器已经支持.换句话说,正如谷歌所说,"使用库加上本机SVG支持,您可以立即锁定现有已安装网站的约95%."


Moh*_*our 5

您可以使用http://code.google.com/p/explorercanvas/在IE中实现HTML5 Canvas Standard.你要做的就是添加:

<head>
<!--[if IE]><script src="excanvas.js"></script><![endif]-->
</head>
Run Code Online (Sandbox Code Playgroud)

Canvas和SVG之间的区别解释如下:

SVG和canvas并不是真正可互换的技术.SVG是一种保留模式图形,其中所有内容都是从一个相当抽象的模型(SVG文档)中提取的.另一方面,Canvas是一种立即模式图形,没有模型,客户端(JavaScript)必须处理重绘,动画等.