我正在编写一个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())
函数。
它里面的函数将在对象加载后触发。