SVG / VML与Canvas vs HTML - Mobile

时间:2012-07-31 14:45:04

标签: html5 mobile canvas svg

我正在寻找构建一个相当简单的地图(我想说可能有100个对象),这些地图显示/更改了颜色并且具有显示另一个对象的onclick(移动)鼠标悬停(桌面)事件。我正在看以下内容。

  1. 帆布
  2. SVG / VML
  3. JS​​ / HTML
  4. 但我的问题是我需要以某种方式支持

    1. IE(7-10)
    2. 火狐
    3. Blackberry 6-7
    4. Windows Mobile 7(IE9)
    5. 的iOS
    6. Android 2.3+(没有svg)
    7. 我似乎无法找到能够支持所有这些的单一系统,Android不支持SVG,移动浏览器似乎用画布很慢,IE 7-8不支持画布,HTML不支持不使用图像支持“形状”,并且需要交换图像,这在视觉上不是很好... yada yada yada ......

      有什么想法我可以为所有这些构建一次吗?我认为做Canvas(移动)和放大器可能会更好。 SVG(桌面)。但是在测试移动设备时,帆布看起来很慢。

      是否有可能有帮助的图书馆或系统?

3 个答案:

答案 0 :(得分:1)

  

我似乎无法找到一个可以支持所有这些

的系统

嗯,没有一个。

您必须坚持使用可移动的div或者制作两个版本的应用。遗憾。

Canvas并不慢,但有些手机很慢。 Canvas(几乎)总是比DOM更快,但是你可以保持这种方式。你正在测试什么代码?

答案 1 :(得分:1)

  1. 如果您需要IE7-8,那么您必须使用VML,它只支持图形模式。
  2. 如果您考虑使用iOS,那么您必须使用Canvas,它在iPad上至少比SVG快10倍。
  3. Canvas仅在默认的Android 2.x浏览器上提供图形mdoe。
  4. 如果您需要浏览器支持的缩放和地图大小超过3000px,那么Canvas不起作用,您必须使用SVG。

答案 2 :(得分:-1)

您可以采用的方法之一是创建一个应用程序用于绘制内容的界面,然后使用两个不同的渲染器对象,一个用于使用SVG的IE7~8,另一个使用Canvas用于其他任何内容。 / p>