javascript - document.elementFromPoint 速度慢

标签 javascript performance element point

我在一个项目中使用 document.elementFromPoint,它看起来很慢。 100,000 次迭代需要 7051 毫秒。 document.getElementsByTagName("*") 的 100,000 次迭代只需要 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();

最佳答案

DOM的作用 elementFromPoint 给定的2个点得到topmos需要循环所有DOM标签内同一个元素的多个点,最后找到点周围的元素x,y 我们之间的topmos。

更多信息在这里:https://drafts.csswg.org/cssom/#documentlayout-elementfrompoint

document.getElementsByTagName("*")只在标签html上循环(html - head - body - div - ul - li - dt - span - input ...) 比 elementFromPoint 快得多。 问候

关于javascript - document.elementFromPoint 速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46045706/

相关文章:

javascript - 将 DocRaptor Web 服务与 AngularJS 一起使用?

sql - 查询最新记录的快速方法?

ruby - 为什么 Ruby 的 splat 在组合数组时比使用 + 组合数组慢?

Java DOM解析无法读取节点

jquery - 快速 jQuery 选择器子元素

javascript - JS/jQuery - 如何从元素 ID 中获取数字并将其用作函数中的变量?

javascript - 基于元素选择的 jQuery 验证条件

javascript - 为什么多次调用动画函数会导致三个js中跳过动画?

javascript - Adobe Acrobat Pro - 下拉列表,在 JavaScript 中显示和隐藏值

javascript - 你在什么时候进行前端优化?