Raphael JS在Internet Explorer 8中的表现

时间:2011-10-19 17:58:08

标签: internet-explorer internet-explorer-8 raphael

Raphael在IE8中的表现明显比IE7或IE6差。

实施例: http://jsfiddle.net/t5NGF/

上述示例在IE8中的渲染速度比在IE7中慢近10倍。激活IE8的兼容模式,性能与IE7相匹配。

为什么IE8在使用Raphael时比IE7 / IE6慢得多,是否有任何工作要做以提高性能?

2 个答案:

答案 0 :(得分:1)

不幸的是,你无能为力。

Raphael在大多数浏览器中使用SVG渲染图形,但在IE6,IE7和IE8下运行时使用VML。 VML是一种矢量图形语言,微软在将SVG定义为标准之前为IE创建了这种语言。

坏消息是IE8的VML引擎明显慢于IE6和IE7,而Raphael的某些功能特别严重地打击了这些慢点。 IE8中的矢量图形性能很差。这只是一个不幸的事实。

tip I found here建议您可能通过将IE8设置为使用其IE7兼容模式来提高性能。我还没有尝试过,说实话我犹豫不决,因为有很多理由不想使用兼容模式,但拉斐尔在IE8中表现不佳的很大一部分原因是{在IE7和IE8之间制作的{3}}。进入兼容模式可能使浏览器切换到VML语言的IE7版本,从而避免这些问题。

正如我所说的,如果可能的话,我会尽量避免使用此选项,因为兼容模式存在很多问题,但是如果你真的不能让任何其他方式令人满意地工作,你可以尝试一下。注意,如果你使用这个解决方案,小心只为IE8激活它;你真的不希望IE9或IE10进入IE7模式,如果你能避免它!

答案 1 :(得分:0)

正确的方法是

<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9">

因为ie9已经实现了svg,所以如果你写:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

然后ie9下降到ie7

Emulate IE7 for IE8 but not for IE9 using "X-UA-Compatible"

中的更多信息