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()
,因为您需要系统创建包含所有运动数据的系统事件。相反,您注册事件处理程序,系统会在有数据要共享时调用您。
我正在使用 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()
,因为您需要系统创建包含所有运动数据的系统事件。相反,您注册事件处理程序,系统会在有数据要共享时调用您。