首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >快速响应的交互式图表/图形: SVG、Canvas、其他?

快速响应的交互式图表/图形: SVG、Canvas、其他?
EN

Stack Overflow用户
提问于 2012-09-07 07:56:45
回答 5查看 37.7K关注 0票数 115

我正在尝试选择正确的技术用于更新项目,该项目基本上在可缩放、可平移的图形中呈现数千个点。目前的实现,使用Protovis,表现不佳。点击这里查看:

http://www.planethunters.org/classify

当完全缩小时,大约有2000个点。尝试使用底部的手柄来放大一点,然后拖动它来平移。你会发现它是非常不稳定的,除非你有一台非常快的计算机,否则你的CPU使用率可能会在一个核心上达到100%。每次对焦点区域的更改都需要重新绘制到protovis,这非常慢,绘制的点越多,情况就越糟糕。

我想对界面进行一些更新,并改变底层的可视化技术,以使动画和交互更具响应性。从下面的文章中,似乎可以在另一个基于SVG的库和一个基于画布的库之间做出选择:

http://www.sitepoint.com/how-to-choose-between-canvas-and-svg/

从Protovis发展而来的d3.js是基于SVG的,并且是supposed to be better at rendering animations。然而,我怀疑它到底有多好,它的性能上限是多少。出于这个原因,我还在考虑使用像KineticJS这样的基于画布的库进行更彻底的改造。然而,在我使用这样或那样的方法之前,我想听听有人用这么多数据做过类似的web应用程序,并听取他们的意见。

最重要的是性能,其次是易于添加其他交互功能和编程动画。一次可能不会超过2000个点,每个点上都有那些小误差条。的放大、缩小和平移需要流畅。如果最新的SVG库在这方面做得不错,那么使用d3的易用性可能会超过KineticJS等增加的设置。但如果使用画布有巨大的性能优势,特别是对于计算机速度较慢的人,那么我肯定更喜欢这样做。

由使用SVG的NYTimes制作的应用程序示例:http://www.nytimes.com/interactive/2012/05/17/business/dealbook/how-the-facebook-offering-compares.html。如果我可以获得这样的性能,而不必编写自己的画布绘制代码,我可能会选择SVG。

我注意到一些用户使用了d3.js manipulation combined with canvas rendering的混合体。然而,我在网上找不到太多关于这方面的文档,也没有联系到那篇文章的评论。如果任何人有做这种DOM- to -Canvas (democode)实现的经验,我也希望能听到你的意见。它似乎是能够操作数据和对如何呈现数据(以及性能)进行自定义控制的一个很好的混合体,但我想知道,是否必须将所有内容都加载到DOM中仍然会减慢速度。

我知道有一些现有的问题与这个问题类似,但没有一个问题是完全相同的。谢谢你的帮助。

Follow- up :我最终使用的实现是https://github.com/zooniverse/LightCurves

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12310024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档