我们通常在Excel中将一些数据(10-50列,数十万行)可视化为折线图或堆积条形图.
用户希望能够放大和缩小图表以获得单个样本,但这些操作确实让Excel瘫痪.
我正在考虑将数据嵌入到HTML页面中,使用内联JavaScript来处理浏览器中的可视化.像flotr JS charting lib这样的东西可以用于图表.
这是一个愚蠢的想法吗?
浏览器是否已准备好进行此类加载?
这是一个解决的问题,我应该在问之前用Google搜索更彻底吗?
krosenvold.. 9
Javascript可能已经准备就绪,因为javascript本身已经非常快.根据我的经验,浏览器通常不准备处理非常大的DOM结构.至少你可能会花费大量时间试图找出原因缓慢的原因.您还会发现许多"标准"javascript库(原型/ jquery浮现在脑海中)不适合处理"过度"的大型DOM结构.
准备好发现给定的操作在所有浏览器上都很慢,但最终在不同的浏览器上出现了3-4种不同的原因.这是基于使用适度超大DOM的经验.虽然肯定是可能的,但要获得体面的结果需要花费大量的工作.
Javascript可能已经准备就绪,因为javascript本身已经非常快.根据我的经验,浏览器通常不准备处理非常大的DOM结构.至少你可能会花费大量时间试图找出原因缓慢的原因.您还会发现许多"标准"javascript库(原型/ jquery浮现在脑海中)不适合处理"过度"的大型DOM结构.
准备好发现给定的操作在所有浏览器上都很慢,但最终在不同的浏览器上出现了3-4种不同的原因.这是基于使用适度超大DOM的经验.虽然肯定是可能的,但要获得体面的结果需要花费大量的工作.
我强烈推荐Adam建议进行一些基准测试和优化.我最近做了一些关于使用Flot绘制大型数据集的工作,并且使用Internet Explorer遇到的性能低于可接受的性能(例如,在绘制图表时,整个浏览器在我的开发人员盒上挂起约20秒).
Flot使用canvas
仅用于Internet Explorer 9+的图表元素.Flot使用ExplorerCanvas库为旧版Internet Explorer提供支持.该库使用VML,通过DOM操作VML元素来绘制图形.
使用Internet Explorer 8脚本分析器我发现渲染绘图的大部分时间都花在调用本机insertAdjacentHTML方法来创建VML元素上.因为没有什么可以提高本地方法调用的性能,所以我改为减少绘制的数据点的数量(反过来减少在DOM中创建的VML元素)以获得可接受的性能.
如果您不需要或不关心旧版本的Internet Explorer支持时,你应该找到海军报/ Flotr是相当能够处理大型数据集.但是,如果您确实需要支持这些版本,请准备好在绘制大型数据集时遇到性能问题.