你会选择基于SVG的渲染器还是HTML5?

时间:2011-08-12 12:04:20

标签: html5 svg

我们正处于一个将用于广告领域的新项目的研究阶段。用户创建一组将在屏幕上的不同区域播放的项目,然后可以交换动画(图像/文本等)。

我们正在推动一个负责渲染的HTML5解决方案,但新的提议只是使用SVG(和SMIL)。

我知道你可以在HTML5页面中嵌入SVG内容,并且有很多链接比较画布和SVG。

我需要知道的是,与仅基于SVG的解决方案相比,寻求基于HTML5的解决方案的优缺点是什么?同样对于项目的长期计划,我可以看到HTML5允许更多。

此外,我不确定使用SVG的用户可以使用哪种工具支持。大多数项目必须是可模仿的(更改文本/图像),这是否可能?

TIA

JD

2 个答案:

答案 0 :(得分:3)

我最近有机会尝试基于SVG的解决方案Raphaël和基于画布的解决方案Flot。两者都在不支持主格式的浏览器上提供仿真:Raphaël在IE上使用VML,而Flot使用excanvas

SVG和canvas都有优点和缺点。两者都可以绘制形状,路径和嵌入图像,但是画布可以进行像素级操作,并且可以快速绘制更多精灵,这就是它为HTML5游戏变得流行的原因。 SVG有更强大的路径,但你必须学习语法。

SVG还有另一个非常有趣的优势:图表上的元素是DOM节点,因此它可以使用浏览器鼠标和单击事件以及添加,删除或更改单个节点,而无需重新绘制整个图表。在画布上做同样的事情涉及手动跟踪每个视觉元素的位置,并在移动东西时重绘整个画布。 (Canvas确实允许你进行双缓冲和缓存,可以快速重绘它,但是跟踪所有内容的逻辑仍在你身上。)

出于这个原因,我认为SVG是交互式图形和图表的更好选择,而画布更适合高级图形。在任何一种情况下,跨平台兼容性都是一个问题,并指出了抽象层。

答案 1 :(得分:1)

SVG可能比HTML5< canvas>更易于搜索引擎友好,因为SVG元素和文本可以(可能 - 不确定它们是否真的这样做!)索引和读取在屏幕阅读器,用户同时< canvas>最初只是一个位图,如果要将其中一个广告作为网页的一部分呈现,则需要创建其他内容。 OTOH,如果它是一个类似游戏的工具,不是为了创造内容,那么也许这不是一个问题...或许会提供更多细节?