浏览器事件和调节功能

时间:2018-08-17 17:12:22

标签: javascript ajax asynchronous events browser

我有一个与浏览器事件有关的测验问题,但是我有很多我不明白的问题,包括该问题甚至在问什么。我想研究一下,如果有人可以解释一下或参考我可以获取更多信息的文章/课程,将不胜感激。


某些用户交互(例如调整大小和滚动)可以在短时间内创建大量浏览器事件。如果附加到这些事件的侦听器花费很长时间才能执行,则用户的浏览器可能会开始显着降低运行速度。为了减轻这个问题,我们想要实现一个节流功能,该功能将检测事件的簇并减少我们调用昂贵函数的次数。

您的函数将接受一个表示事件时间戳流的数组,并返回一个表示应调用回调的时间的数组。如果某个事件在上一个事件的等待时间内发生,则该事件属于同一集群。您的功能应满足以下用例:

1)在集群中的第一个事件上触发一次,例如一旦窗口开始调整大小。 2)在集群中的最后一个事件之后触发一次,例如用户窗口停止调整大小后。 3)在集群中每间隔毫秒触发一次,例如窗口调整大小时每100毫秒一次。

function throttle(wait, onLast, onFirst, interval, timestamps) {
    // fill in here
}

enter image description here

我想知道,

  1. 这些问题是为了使“节流功能能够检测事件簇并减少我们称之为昂贵功能的次数”。这里的事件集群是什么,“减少我们称为昂贵函数的次数”是什么意思?我到底应该减少什么?

  2. 什么是事件时间戳记?

  3. 从句子“如果某个事件在上一个事件的等待时间之内发生”中,“等待时间”是否指的是类似setTimeout方法中的等待时间?

0 个答案:

没有答案