Javascript - 大量渲染对象

时间:2015-01-15 21:32:07

标签: javascript jquery html5 canvas svg

我正在构建基于javascript / jQuery和php的Web应用程序,我需要渲染和管理(例如让用户拖放,调整大小等)大量(20,000+)绘制对象在网页上,我正在寻找方法/库使用方面的建议,主要是为了了解如何做到这一点,同时保持页面性能可以接受。

对象是简单的几何形状(矩形,圆形,正方形等),我需要将事件处理程序附加到并能够移动/重新调整大小。形状属性将基于javascript对象的属性,我需要根据javascript对象属性更改形状,反之亦然。

画布区域可能非常大(不确定这是否会影响性能?)虽然并非所有对象都可以看到'在页面上,但必须能够在整个画布周围的div(使用溢出等)内滚动。我已经使用jQuery SVGDOM构建了一些用于测试目的的东西,当我有几百个对象时它可以正常工作,但是当我超过1000个对象时,页面会停止运行。

我喜欢svgdom的方式是它与jQuery非常适合引用DOM对象(用于事件处理程序等),但我愿意(尝试)开发更复杂的代码,如果我需要,以便能够从性能的角度来看,svgdom似乎并不满足于大量的对象。

有关如何执行此操作的任何建议吗?

2 个答案:

答案 0 :(得分:0)

我认为您需要研究使用GPU渲染的webGL。一个好的框架就是three.js。

仍然,要管理你的期望:使20k对象交互真的是一个很大的挑战,可能需要一些智能缓存系统来伪造它。如果你也瞄准移动设备,我会说你的目标太过苛刻。如果100个物体运行/移动平稳,我有时会感到高兴。

答案 1 :(得分:0)

我正在回答我原来的问题,即无论是SVG还是直接在画布上显示/管理我需要的单个页面上的对象数量都是不切实际的。

所以我的方法必须是减少在任何给定时间显示的对象数量 - 现在我只需要弄清楚最好的方法是做什么......