Javascript 间隔事件侦听器

Javascript Event Listener at Interval

我正在使用 ondevicemotion API 监听设备上的运动数据。例如:

window.ondevicemotion = function(event) {
    // do something with the event
}

我想运行调用这个函数;但是,因为它是基于事件的,所以它会在事件发生时触发(这取决于设备,可能经常发生)。

如何调整函数使其仅在我调用时监听事件,而不是连续监听?

您可以根据需要添加和删除事件侦听器:

function processMotion(e) {
   // your code here to process devicemotion events
}

function addMotionListener() {
    window.addEventListener("devicemotion", processMotion);
}

function removeMotionLisener() {
    window.removeEventListener("devicemotion", processMotion);
}

因此,当您想要开始收听动态时,只需调用 addMotionListener()。然后在你想停止监听时调用removeMotionListener()


您不能真正自己调用 processMotion(),因为您需要系统创建包含所有运动数据的系统事件。相反,您注册事件处理程序,系统会在有数据要共享时调用您。