无限滚动执行动作两次或两次以上

Infinite scroll execute action twice or more

本文关键字:两次 滚动 执行 无限      更新时间:2023-09-26

我正在尝试实现无限滚动。一切都很好,除了一件事。

当用户滚动到末尾时,我使用$执行异步请求。将内容添加到页面的getScript。但有时(太频繁),此操作执行两次。

如何只执行此操作一次,直到它再次到达页面末尾?

$(window).scroll(function () {
  var more_posts_url;
  // Get the URL of the next page
  more_posts_url = $('.next_page').attr('href');
  if ($(window).scrollTop() >= $(document).height() - $(window).height() - 200) {
    console.log("LOADING PAGE "+more_posts_url);
    // Call the next page and render it (via my back-end)
    $.getScript(more_posts_url);
  }
});

在我的控制台,我得到:

LOADING PAGE /pages/?page=2
LOADING PAGE /pages/?page=2
LOADING PAGE /pages/?page=3
LOADING PAGE /pages/?page=3
LOADING PAGE /pages/?page=3
LOADING PAGE /pages/?page=4
LOADING PAGE /pages/?page=5
...

即使我没有疯狂滚动,也会出现这种情况。

问题解决了。我在Ajax中发送请求,并通过远程表单…