再来是比较svg。
浏览器:
IE不支持svg,需要安装插件。分别使用了adobe的svgviewer3.0和6.0。
opera自身支持svg。
测试方案:
IE+SVG(3.0/6.0):svg性能测试.htm。IE分别安装svg3.0/6.0插件。比较遗憾的是,adobe不再提供svg的插件开发,所以IE对svg的支持只能停留在现有状况,或者等IE以后原生支持svg了。从测试结果看,svg的性能要好于VML,大约是1~2倍。尤其是对line的处理要快于vml。
IE+SVG(3.0/6.0):svg性能测试1.htm。由于adobe 的插件和opera的原生支持方式略有不同。所以在测试程序中针对不同浏览器进行了最简单的封装,力争不影响性能。从测试结果看,js带来的影响微乎其微,可以忽略。
IE+rapheal:svg性能o.htm。rapheal是opera论坛上推荐的跨浏览器脚本。在IE上通过vml实现,在opera上通过svg 实现。脚本本身的封装比较通用。但是rapheal不支持line,只能用path代替。从测试结果看,js的通用封装对性能的影响相当明显。不过path的性能看起来反而比rect要好一些。
Opeara+svg:svg性能测试1.htm。这个和IE的测试页面是通用的。只是针对不同浏览器进行了简单的封装和分支处理。从测试结果看,和IE+svg 的性能也差不多。
Opera+rapheal :svg性能测试o.htm由于opera对svg的支持api变了,所以尝试使用rapheal.js。从测试结果看,比原生的svg慢了3倍左右。而且其中的line用path代替,性能要更差一些
附:
测试源码:
对于IE,需要使用embed方式,而且需要一个空的svg文件
使用rapheal.js的源码
测试结果:
IE+SVG3 | 47 | 47 | 281 | 281 |
Opera+svg | 31 | 31 | 281 | 312 |
Opera+rapheal | 94 | 203* | 890 | 1860 |