SVG或Canvas似乎是明显的选择(与JS库-可能是jQuery-一起使用),但跨浏览器的可用性缺乏令人担忧。如果需要支持IE7 / 8,则我更愿意避免Flash / Flex,但目前这是我找到的唯一坚如磐石、跨浏览器的技术。
有没有其他建议或任何其他信息,可以使我列出的技术更具吸引力呢?
谢谢。
请查看原始Processing.org网站。
他们使用Java小程序可能看起来有些奇怪/过时,但是他们能够通过Java获得比JavaScript更好的性能。这些小程序似乎可以在任何地方运行,并且您将可以访问许多优秀的Java库。
HighCharts是一款JavaScript、优秀、免费且跨浏览器的图表工具。
请查看Highcharts演示。
SVG 可以在除了 IE 之外的所有浏览器上使用,而 VML 可以在 IE 上使用(自 5.5 版本开始,如果我没记错的话)。如果你可以同时提供 SVG 和 VML,那么几乎每个人都能看到矢量图形。RaphaelJS 是一个 JavaScript 库,可以从同一段 JavaScript 代码生成这两种格式,但当然这只是其中一种方法。
Canvas 在除了 IE 之外的几乎所有浏览器上也可以使用,但有些疯狂的人编写了称为 excanvas 的东西,在 VML 中模拟 Canvas。从我的朋友和同事那里听说,它的性能比几乎任何其他浏览器图形解决方案都要差,但如果你想要可移植的位图图形,它几乎是唯一的非插件游戏。
你采取哪种路线——矢量还是光栅——真的取决于你的应用程序。
你可能想要看一下 Raphael 和 GRaphael。Raphael 允许你创建矢量图形,并在支持 SVG 的浏览器上使用 SVG,而在 IE 上自动切换到 VML。
你也可以看看基于 canvas 的 processing.js。
SVG和Canvas适用于相对简单的数据(即仅需要几条线的情况)。对于复杂的数据(例如频率分布或每个像素发射一个样本的情况),您应该在服务器上呈现普通图像。