不同的浏览器如何处理大量相同的事件?

时间:2018-11-08 16:45:21

标签: javascript javascript-events drag-and-drop

我正在尝试通过突出显示放置物品的位置来进行拖放。 当onDragOver事件发生时,我会进行一些计算,因此基本上每次用户移动鼠标指针时都会执行这些计算,因为放置的位置还取决于指针与要在其上拖动指针的元素的相对位置。 / p>

问题是:当下一个onDragOver被调用但前一个仍在计算时会发生什么?

这是我的问题https://stackblitz.com/edit/angular-njenrg

的示例

基本上,我将一个类设置为在另一个元素上拖动的元素,然后在dragLeave上删除该类。 我这样做是在模拟一些昂贵的计算:

const arr = [];
for (let i = 0; i < 100000; i++) {
  arr.push(Math.pow(Math.random() * 100 + 1,100)); 
}

尝试将元素在一个元素上移动一段时间,您会注意到,放下该项目时,您仍然可以看到某些元素带有红色边框。这意味着没有为那些元素执行dragLeave

我想问你是否有一种方法可以取消以前的计算(如果有新的计算开始),那么dragLeave会及时执行吗?

0 个答案:

没有答案