setTimeout停止滚动功能

时间:2019-06-11 06:28:21

标签: javascript jquery scroll settimeout

我有这个滚动功能,用于检查何时到达div ID的结尾:

function loadOldPosts() {

        $.ajax({
            url: "https://www.example.com/go.php",
            method: "post",
            data:{
                postID: postID
            },
            dataType:"json",
            success:function(data)
            {
                if (data) {

                    setTimeout(loadOldPosts, 5000);

                }
            }

        });

    }

$(window).scroll(function() {

    var $this = $(this);

    if ($this.scrollTop() + $this.height() >= $('#wall_posts').offset().top + $('#wall_posts').height() ) { 
        loadOldPosts();
    } 

});

我正在尝试使其运行,以便一旦loadOldPosts运行,它必须等待5秒钟才能再次运行。我虽然可以使用setTimeout函数来完成此操作,但是它似乎不起作用。

如何使该功能最多每5秒运行一次?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用以下示例通过等待下一次调用直到ajax成功/错误来完成此操作:

var loading  = true;
function loadOldPosts(){
   if(loading){
     loading  = false;
     $.ajax({
      ...,
      success:function(data){
         loading  = true;
      },
      error:function(data){
         loading  = true;
      }
     })     
   }
}