Underscore.js Debounce不能正常使用Scroll
Underscore.js Debounce not Working Properly with Scroll
我正在尝试使用_.debounce
下划线.js函数来限制发送的AJAX POST请求的数量。
我的代码应该只执行AJAX一旦用户已经滚动到页面的底部,我已经尝试使用_.debounce
在发送另一个请求之前等待2秒。一旦我滚动到底部,AJAX就会正确执行,但是,如果我在到达底部后继续滚动,在2秒内就会发送另一个AJAX请求。
我也试过使用_.throttle
。
function ajaxFunction() {
$.ajax({
type: "POST",
url: "SearchResults",
data: { skipAmount: $('.product-box').length, search: search },
success: function (response) {
if (response != null && response.success) {
$('#productcontent').append(response.responseText);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (debug) {
alert(XMLHttpRequest.responseText);
alert(textStatus);
alert(errorThrown);
}
}
});
}
function debounceAjaxFunction() { _.debounce(ajaxFunction(), 2000); }
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
debounceAjaxFunction();
}
})
您正在调用debounce参数中的函数
_.debounce(ajaxFunction(), 2000);
当你只需要传递它的引用作为参数
_.debounce(ajaxFunction, 2000);
然后设置一个变量,从滚动函数
调用 var debounceAjaxFunction = _.debounce(ajaxFunction, 2000);
文档在这里供参考http://underscorejs.org/#debounce,相关部分是
var lazyLayout = _.debounce(calculateLayout, 300);
相关文章:
- Imageslooaded无法使用Infinite Ajax Scroll和Masonry
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- 在Scroll上更新CSS代码:简化它就不会了'不要使用JQuery和最简单的Javascript
- 使用Bootstrap3更改Scroll Jquery上导航栏的高度
- jQuery 使用 .scroll(handler) 滚动到元素
- 在使用 IIFE 函数的角度 js 中无法访问其他控制器中的常量值
- 如何使用 jquery 停止 $(window).scroll 事件
- 使用 jquery.animate() 和 jquery.scroll() 反转由动画效果引起的 CSS 更改
- 使用 jQuery '.scroll()' 移动到网站的各个部分
- 使用 requestAnimationFrame 替换 $(window).on('scroll', function(
- jQuery:当使用on .scroll事件和警报时,Firefox似乎无限循环
- jQuery resize(), scroll():使用变量的好习惯
- Jquery.scroll()无法在IE中同时使用$(window)和$(document).(window.pageY
- jQuery:使用scroll()和offset()来更改背景
- 图像默认加载,而不是使用JQuery:Image on Scroll Down函数保持隐藏
- 如何使用此javascript将post值发送到scroll.php
- 在angularjs和jade中使用Infinite scroll
- 使用scroll - navjs引导导航条的不透明度
- 在移动设备上使用Scroll by
- Underscore.js Debounce不能正常使用Scroll