Я использую Heatmap для отображения всех пользователей, которые нажимают на мою страницу, используя heatmaps.js от Патрика Вида. Heatmap загружается из коллекции "datapoints" для каждого элемента. Но загрузка занимает слишком много времени...
Ошибка выпуска:
Каждый datapoint имеет координаты X, Y и селектор (полученный с помощью selectorator.js) элемента HTML на странице. В настоящее время я получаю около 5 тыс. Точек для каждой страницы и Мне нужно проверить, не скрыты ли какие-то элементы, поэтому мы не будем отображать тепловую карту для скрытых элементов.
В настоящее время я использую:
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
Pseudo script поток desc.:
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)
.
Надеюсь, это имеет смысл.
Факт: получение селектора элемента может занять немного времени, но обратный процесс (получение и элемент на основе селектора) занимает почти нет времени. - > поэтому я не могу просто отправить массив селекторов скрытых элементов и фильтровать те, которые будут намного быстрее.