我们有一些数据(10-50列,数十万行),我们通常在Excel中将其显示为折线图或堆积条形图。
用户希望能够放大和缩小图表以获得单个样本,但这些操作确实让Excel瘫痪。
我正在考虑将数据嵌入到HTML页面中,使用内联JavaScript来处理浏览器中的可视化。像flotr JS charting lib这样的东西可以用于图表。
答案 0 :(得分:9)
Javascript可能已经准备就绪,因为javascript本身已经非常快。根据我的经验,浏览器通常不准备好处理非常大的DOM结构。至少你可能会花费大量时间试图找出原因缓慢的原因。您还会发现许多“标准”javascript库(原型/ jquery浮现在脑海中)不适合使用“过度”的大型DOM结构。
准备好发现所有浏览器上的给定操作都很慢,但最终在不同的浏览器上出现了3-4种不同的原因。这是基于使用适度超大DOM的经验。虽然肯定是可能的,但要获得合适的结果需要花费大量的工作。
答案 1 :(得分:6)
我强烈建议Adam建议进行一些基准测试和优化。我最近做了一些关于使用Flot绘制大型数据集的工作,并且使用Internet Explorer遇到的性能低于可接受的性能(例如,在绘制图表时,整个浏览器在我的开发人员框中挂起约20秒)。
Flot使用canvas
元素进行制图,仅支持Internet Explorer 9+。 Flot使用ExplorerCanvas库为旧版Internet Explorer提供支持。该库使用VML,通过DOM操纵VML元素来绘制图形。
使用Internet Explorer 8 script profiler我发现渲染绘图的大部分时间都花在调用本地insertAdjacentHTML method上以创建VML元素上。因为没有什么可以提高本地方法调用的性能,所以我改为减少绘制的数据点的数量(反过来减少在DOM中创建的VML元素)以获得可接受的性能。
如果您不需要或不关心对旧版Internet Explorer的支持,您应该发现Flot / Flotr能够处理大型数据集。但是,如果您确实需要支持这些版本,请准备好在绘制大型数据集时遇到性能问题。
答案 2 :(得分:4)
Javascript是否已准备好可视化大型数据集?
是的 - 语言可以毫不费力地在适当的环境中处理重要的记录集并操纵,可视化等等。语言本身很好。
这是一个愚蠢的想法吗?
不,实际上你可以指望几乎所有的计算机都可以运行这种功能强大的跨平台语言。
浏览器是否已准备好进行此类加载?
有些可能 - 取决于您实际采取的处理和行动。随着Chrome使用快速的JavaScript引擎,并且越来越多的人严重依赖它,javascript速度战就被点燃了。我认为这是一个非常有效的使用场景。
您需要为基准测试和优化做好准备,这意味着深入挖掘javascript的内涵。请公布您的结果,以便修补缺陷。
- 亚当