document.elementFromPoint скорость медленная

1

Я использую document.elementFromPoint в проекте, и это кажется очень медленным. 100 000 итераций составляет 7051 мс. 100 000 итераций document.getElementsByTagName("*") занимают только 32 мс. Почему document.elementFromPoint более чем в 200 раз медленнее? Есть ли альтернатива, которая быстрее?

function elementFromPointSpeed() {
    start=performance.now();
  for(var i=0;i<100000;i++)
  el=document.elementFromPoint(100,100);
  //el=document.getElementsByTagName("*"); 
    end=performance.now()
    console.log(end-start)
}
elementFromPointSpeed();
Теги:
performance
element
point

1 ответ

1

Функция DOM elementFromPoint 2 указывает, что для получения topmos необходимо зацикливаться на нескольких точках одного и того же элемента внутри всех тегов DOM и, наконец, найти элементы вокруг точек x,y которые являются вершинами между нами.

Подробнее здесь: https://drafts.csswg.org/cssom/#documentlayout-elementfrompoint

document.getElementsByTagName("*") только цикл на тег html (html - head - body - div - ul - li - dt - span - input...) намного быстрее, чем elementFromPoint. С уважением

  • 0
    Спасибо за объяснение, как это работает. Есть ли другой способ сделать это, который был бы быстрее?
  • 0
    Мой вопрос, есть ли особая причина использования этой функции? Может быть, альтернатива зависит от того, что вы хотите получить в результате в вашем контексте. С уважением.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню