scrollTo Paging调用得太快了

时间:2013-08-06 02:18:53

标签: c# jquery asp.net-mvc scrolltop

我正在使用scrollTop函数来检测用户离屏幕底部的距离以添加更多内容。我的javascript函数是这样的:

  if ($(window).scrollTop() >= $(document).height() - $(window).height() - 75) {
    var url = '<%=Url.Action("MoreView", "Status", new { id = ViewData["Id"], 
    page = Convert.ToInt32(ViewData["PageNumber"])+1 })%>';

            NextPage(url); //this does an ajax call to the action method on the server

        }

一切正常,问题是window.ScrollTop&gt; 75有时会发生2到3次,以至于加载相同的内容2到3次。我可以通过在服务器端使用会话变量来解决这个问题,但不想去那条路线,因为这可能会让丑陋的IMO。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

现在,您将始终向同一个URL发出请求(每次都会生成相同的数据,除非我误解了您的操作)。一旦你解决了这个问题,你可能想要包装当用户在debounce函数中滚动时调用的函数(我在这个例子中使用的是Underscore.js'debounce函数):< / p>

// Only call yourOnScroll once it hasn't been called
// for more than 100 milliseconds
yourOnScroll = _.debounce(youOnScroll, 100);