gpt4 book ai didi

javascript - 无限滚动去抖以避免过多调用

转载 作者:太空宇宙 更新时间:2023-11-04 16:15:44 25 4
gpt4 key购买 nike

这是一个自定义指令,尝试使用 lodash 的 debounce 但不起作用。我可以删除去抖,但在我的网络中,当用户滚动到页面底部时,将会有额外的 2-4 个调用。怎么解决这个问题?

angular.module('app')
.directive('checkBottom', function($document, $window) {
return function(scope, elm, attr) {
$document.bind('scroll', function() {
if( ($window.innerHeight + $window.scrollY) > $document.innerHeight() - 50) {
_.debounce(applyFunc, 100 ); // this don't work?

function applyFunc(){
scope.$apply(attr.checkBottom);
}
}
});
};
});

最佳答案

_.debounce() 创建一个函数供您以后使用;它不是您调用函数来调用的东西。基于documentation ,你可以像这样使用它:

var applyFunc = applyFunc(){
scope.$apply(attr.checkBottom);
}

var debouncedApplyFunc = _.debounce(applyFunc, 100 );

angular.module('app')
.directive('checkBottom', function($document, $window) {
return function(scope, elm, attr) {
$document.bind('scroll', function() {
if( ($window.innerHeight + $window.scrollY) > $document.innerHeight() - 50) {
debouncedApplyFunc();
}
});
};
});

关于javascript - 无限滚动去抖以避免过多调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com