Javascript 触发最后一个事件



我正在编写一个Web应用程序,我不知道如何继续我试图用Javascript做的事情。

我有一个函数,当我缩放地图或移动地图时会触发该函数。我尽量避免这个函数做它的东西,直到它过了一段时间(例如 2 秒(。好的,我可以使用setInterval方法来实现它。

但是我想要的,我不知道该怎么做的是...如果我确实缩放了 3 次,它们之间的时间非常接近,我只想处理最后一次缩放,而不是前两个缩放。我的意思是,必须取消前 2 个函数调用,或者类似的东西。

我该怎么做?


我拥有的示例(伪代码(:

function doStuff() {
    setInterval(function({
       // do some stuff here...
    }, 2000);
}
myMap.on('dragend', doStuff);  // If I move inside the map
myMap.on('zoomend', doStuff);  // If I do zoom on the map

我尝试在每次启动间隔时在全局变量中设置捕获 intervalID; 然后,当您触发事件时,请检查变量是否已设置,如果是,则使用 clearInterval 函数在开始下一个间隔之前取消上一个间隔。

像这样:

var intervalID = 0;
function doStuff(){
  if(intervalID != 0){
    window.clearInterval(intervalID);
  }
  intervalID = setInterval(function({
       // do some stuff here...
       intervalID = 0; // try reseting the intevalID on completion, not sure if here
  }, 2000);
//  Your stuff

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setIntervalhttps://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval

您可以使用object.addEventListener('load', function())函数。

它里面的函数将在对象加载后触发。

相关内容

  • 没有找到相关文章

最新更新