Sto implementando heatmap per visualizzare tutti gli utenti che fanno clic sulla mia pagina utilizzando heatmaps.js di Patrick Wied. Heatmap viene caricato dalla collezione di "datapoints" per ogni elemento. Ma richiede troppo tempo per caricare ....
desc emissione .:Selectorator.js - selettore di tutti gli elementi nascosti a pagina
Ciascun punto dati ha coordinate X, Y e selettore (recuperato utilizzando selectorator.js) dell'elemento HTML a pag. Attualmente sto ottenendo circa 5k punti per ogni pagina e Ho bisogno di controllare se alcuni elementi non sono nascosti quindi non mostreremo heatmap per gli elementi nascosti.
Attualmente sto usando:
element = $(data.points[i].Element);
element.is(":hidden"))
ma questo richiede circa 7 secondi per controllare tutti quei punti che è abbastanza lungo. Ho esaurito le idee su come evitare/ottimizzare questo problema.
Datapoint dettaglio:
Element: #pageData > tbody > tr:eq(3) > td:eq(4) > a:eq(0)
Y:0.6546159
X:0.4444231
Pseudo script del flusso di disc .:
FOREACH(point in allDatapoints)
{
...
calculation of some parameters needed to show on heamapat
...
if (point.element.is(":hidden"))
{
continue;
}
pointsToDisplay.push(point)
}
Ho anche cercato di ottenere i selettori di tutti gli elementi nascosti, ma GetSelector()
in selectorator.js e poi basta andare attraverso quella matrice ma richiede quasi la stessa ora della funzione is(:hidden)
.
Spero che abbia senso.
Fatto: Ottenere il selettore di un elemento potrebbe richiedere un po 'di tempo, ma il processo inverso (ottenendo ed elemento base di selettore) richiede pochissimo tempo. -> quindi non posso semplicemente inviare array di selettori di elementi nascosti e filtrare quelli che sarebbero molto più veloci.
Grazie per la modifica. @TotaloDotoNeto. – Anymoify
esegui un profiler e pubblichi i risultati?forse questo darà un'idea di cosa ci vuole da così tanto tempo – epoch
grazie per il profilo, è come se pensassi che i selettori stanno uccidendo la tua pagina, dovrai pensare a un altro modo per farlo, eventualmente salvando lo stato dell'elemento quando raccolgo i dati – epoch