确定用户是否停止使用jQuery的debounce进行滚动

时间:2015-07-04 23:16:32

标签: javascript jquery

我正在编写一个网页,用于跟踪用户在垂直滚动网页上的位置。我正在听scroll事件,但这种情况经常发生。我想做的是听一些scroll end事件,但这不存在。我已经阅读了StackOverflow上的几个答案,包括使用超时,我想我已经决定使用jQuery的debounce方法做这样的事情:

$(window).scroll($.debounce( 250, true, function(){
    $('#scrollMsg').html('SCROLLING!');
} ) );
$(window).scroll($.debounce( 250, function(){
    $('#scrollMsg').html('DONE!');
} ) );

我担心我仍然会遗漏一些scroll end事件。对于我的服务而言,我总是捕获end事件非常重要,这样我才能准确地跟踪用户在网页上的位置。任何人都可以了解这是否是一个有效的问题?我做了一些粗略的测试,但我没有足够的信心打电话......

1 个答案:

答案 0 :(得分:1)

我认为用户查看网页的“哪个部分”与数据库中存储的信息或者存储信息的位置之间总会存在延迟, 并且每当他滚动或移动鼠标时你也不能发送获取请求,因为这会导致大量的请求。

所以在我看来你只需要设置一个间隔,满足你的要求,向你的服务器发送一个'心跳'让我们说每5秒,这实际上是一个json数据,包括他当前的链接浏览以及页面的哪个部分以及您可能觉得有用的任何其他数据(例如上次活动)(您可以通过多种方式衡量这一点:例如,最后一次鼠标移动<body>移动) 通过这种方式,您将有机会将heart beat添加到您的服务器的任何信息添加到您的服务器,并为您提供更多跟踪信息。