我正在实施热图以显示所有用户使用Patrick Wied的heatmaps.js点击我的页面.Heatmap是从每个元素的"datapoints"集合加载的.但是加载需要太长时间......
问题描述:
每个数据点都有页面上HTML元素的X,Y坐标和选择器(使用selectorator.js检索).目前我每页得到大约5k点,我需要检查是否有一些元素没有隐藏,所以我们不会显示隐藏元素的热图.
目前我正在使用:
element = $(data.points[i].Element); element.is(":hidden"))
但这需要大约7秒来检查所有那些很长的点.我已经没有想法如何避免/优化这个问题.
数据点细节:
元素:#pageData> tbody> tr:eq(3)> td:eq(4)> a:eq(0)
Y:0.6546159
X:0.4444231
伪脚本流程描述:
FOREACH(point in allDatapoints) { ... calculation of some parameters needed to show on heamapat ... if (point.element.is(":hidden")) { continue; } pointsToDisplay.push(point) }
我也试图获取所有隐藏元素GetSelector()
的选择器,但是在selectorator.js中然后只是通过该数组,但它几乎与is(:hidden)
函数相同.
我希望这是有道理的.
事实:获取元素的选择器可能需要一些时间,但是反向过程(获取和基于选择器的元素)几乎没有时间. - >所以我不能简单地发送隐藏元素的选择器数组并过滤那些会快得多的元素.