我正在编写Web应用程序,但我不知道如何继续使用Java进行操作。
我在放大地图或移动地图时会触发一个功能。我尝试避免将此功能发挥作用,直到一段时间(例如2秒)为止。好的,我可以使用setInterval
方法来实现它。
但是我想要的,但我不知道该怎么做...如果我进行了3次缩放,两次之间的时间非常接近,我只想处理最后一次缩放,不是两个以前的。我的意思是,必须取消两个第一个函数调用,或类似的操作。
我该怎么办?
我所拥有的示例(伪代码)
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
答案 0 :(得分:1)
我要尝试的是每次启动间隔时都以全局变量的形式设置捕获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/setInterval https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval
答案 1 :(得分:0)
您可以使用object.addEventListener('load', function())
函数。
对象加载后将触发其中的函数。