在每次调用滚动事件调用函数后给出延迟

时间:2012-07-11 10:44:49

标签: jquery ajax ruby-on-rails-3

我在scroll事件上调用checkscroll(),这会连续发出Ajax请求。 我想在调用checkscroll()之间提供一些延迟,以便在第二次调用checkscroll()并发出ajax请求之前完成我的第一个Ajax请求。 这是我的代码:

function scroll(){ $(window).bind('scroll',checkScroll);}
        // calling checkScroll()   on scroll
function refresh(){flag = 1;}

function checkScroll() {


if (flag==1){ $(window).unbind('scroll');}

if(nearBottomOfPage() == 0)
{

  currentPage ++;

  xhr = $.ajax(
    {
        url : '/ideabank?page=' + currentPage,
        beforeSend: function() {
                $('#loading').show()
            },
            complete: function(){
                $('#loading').hide()
            },


        success : function(){ "can I do something here"}

    } );
}

}

2 个答案:

答案 0 :(得分:1)

试试这段代码:

function scroll(){ 
 $(window).bind('scroll',function(){
  setTimeOut(checkScroll,1000);
});
}

答案 1 :(得分:1)

谢谢大家, 完成后我已经将setTimeout给了ajax.Posting代码片段以便更好地理解。

     setTimeout( function() {
        $.ajax({
            type: "GET",

            url: '/ideabank?page=' + currentPage,

            beforeSend: function() {
                $('#loading').show()
            },

            success: function(html) {
                $('#loading').hide()
            }
        });
    }, 500 );