我使用跟踪JS来帮助检测用户的眼睛是否打开,然后只有当它检测到少于3个对象、脸、嘴和一只眼睛时才播放音频。我对它很有信心,也很有效,但是这个事件太频繁地跟踪和更新数据,导致了非常不稳定和令人不快的体验。
目前,我有跟踪器不断检查与跟踪器如下:
tracker.on('track', function(event) {
if (event.data.length > 2 ) {
document.body.classList.add("hide");
pauseAudio();
} else {
document.body.classList.remove("hide");
playAudio();
}有没有一种方法可以减少这个函数的运行频率,或者指定它应该每秒运行多少次?
发布于 2018-03-22 17:41:18
您可以使用某种节流机制,lodash让它来构建它。
_.throttle,获取一个函数&节流时间,并返回一个节流函数,因此您可以将其用作:
const handler = function(event) {
if (event.data.length > 2 ) {
document.body.classList.add("hide");
pauseAudio();
} else {
document.body.classList.remove("hide");
playAudio();
}
};
const throttledHandler = _.throttle(handler, 100); // 100ms
tracker.on('track', throttledHandler);https://stackoverflow.com/questions/49434919
复制相似问题