如何解决滚动事件调用在ajax成功函数内部的每次滚动中起作用的次数越来越多
上下文
我的网站上有一个页面,其中加载了用户评论。加载评论后,当用户滚动到页面底部时,还将加载更多评论。我将此滚动代码放在AJAX成功回调的底部之所以会获得注释,是因为将其保留在AJAX调用之外会使AJAX函数运行多次,并在相同的注释中加载两次。 AJAX代码如下所示:
function getArticleHighlightResponses() {
$.ajax({
url: 'includes/articles/getArticleHighlightResponses.php',type: 'POST',data: {articleId: articleId,commentId: commentId,contenttype: contenttype,offset: getHighlightArticleResponsesOffset},dataType: 'json',success: function(data) {
data.forEach(function(item) {
//do stuff in here
});
getHighlightArticleResponsesOffset = getHighlightArticleResponsesOffset + 10;
$(window).on("scroll",debounce(function() {
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
<?php if (isset($_GET['getSpecificComment'])) { ?>
var commentId = "<?php echo $_GET['commentId']; ?>";
var contenttype = "<?php echo $_GET['contenttype']; ?>";
getArticleHighlightResponses(commentId,contenttype);
<?php } else { ?>
getArticleHighlightResponses();
<?php } ?>
}
},50));
}
});
}
在AJAX成功回调中调用此滚动代码消除了双重注释加载的问题,但是每次我滚动到页面底部时,函数getArticleHighlightResponses()
的调用时间是其两倍。之前;如果我向下滚动一次页面,它将被调用一次。如果我再做一次,它将被调用两次。如果我再做一次,它将被调用四次。如果我再进行两次,总共五次,则称为16次。当我只希望一次调用该函数时,滚动到页面底部将导致大量函数调用。
问题
关于AJAX成功回调的性质是否存在一些使事件多次运行功能的东西?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。