immediate与debounce相似,immediat连续执行,且间隔不超过500ms,lazyLoad只执行一次,不同于immediate的是现在lazyLoad会先执行,
var safe=true;
function immediate() {
if (safe) {
lazyLoad();
safe = false;
}
clearTimeout(timer);
timer = setTimeout(function() {
safe = true;
}, 500);
}
demo-immediate:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body style="height:2000px"> <script> /*immediate与debounce相似, immediat连续执行,且间隔不超过500ms, srollFn 只执行一次,不同的是srollFn 会先执行*/ var num=0; function lazyLoad() { num++; console.log(num); } var timer = null; var safe=true; function immediate() { if (safe) { lazyLoad(); safe = false; } clearTimeout(timer); timer = setTimeout(function() { safe = true; }, 1000); } window.onscroll = immediate; </script> </body> </html>