问题描述dispatchEvent传播mousedown事件时会消耗很长的时间。ele1.addEventListener('mousedown', dispatch);function dispatch(e){ console.log(new Date().getTime()); // time1
var event = new e.constructor(e.type, e);
ele2.dispatchEvent(event); console.log(new Date().getTime()); // time2 }time2 - time1 的值跟元素数量成正比,元素越多,值越大,mousedown事件触发的延迟就越高。最多可达几千毫秒。问题出现的环境背景有三个平行的div层,最外层是蒙层,中间层是展示层,最里层是事件层。蒙层监听鼠标事件,接收到事件之后使用dispatchEvent分发给最里层。但是当中间层的元素很多的时候,蒙层上的mousedown事件调用dispatchEvent传播会有很高的延迟。中间层元素越多,dispatchEvent需要的时间就越多,延迟就越高。中间层没有介入事件传播。--想了很久都不明白,求大佬解答。对了 只有mousedown有这个问题,mousemove, mousein, mouseout都没有!!--更新最里层是高德地图时才会有这个问题,是平常的div就没有这种问题。
1 回答
- 1 回答
- 0 关注
- 836 浏览
添加回答
举报
0/150
提交
取消