我需要使用 dojo 图表库绘制数千个点,可能接近 50,000 个点。它可以工作,但它肯定非常慢并且落后于浏览器。有什么办法可以获得更好的性能吗?
编辑:
我通过对数据应用渲染过滤器来解决。本质上,我有一个名为“render”的新项目参数,如果预计该点与其他点重叠,我的 json 源将其设置为 false。然后,我的 DataSeries 查询呈现:true 的所有点。这样,对于需要所有点的非可视源,所有数据仍然存在,而我的图表现在运行顺利。
伪代码:
def is_overlapped(x, y, x_round, y_round)
rounded_x = round(x, x_round)
rounded_y = round(y, y_round)
hash = hash_xy(rounded_x, rounded_y)
if(@overlap_filter[hash].nil?)
@overlap_filter[hash] = true
return false
end
return true
end
x_round 和 y_round 可以由 x 和 y 范围确定,例如 range / 100