2015-07-04 51 views
2

我正在写一个网页,跟踪用户在垂直滚动网页上的位置。我目前正在聆听scroll活动,但这次发生的频率太高。我想要做的是倾听诸如scroll end事件,但不存在。我已经通过在计算器上几个答案,包括使用超时看完了,我想我已经决定使用jQuery的debounce方法做这样的事情:搞清楚用户是否停止滚动jQuery的debounce

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

我担心,我依然能错过一些scroll end事件。对我的服务非常重要,我总是在中捕获end事件,以便我可以准确地跟踪用户在网页上的位置。任何人都可以阐明这是否是一个有效的担忧?我已经做了一些粗略的测试,但我没有足够的信心打电话...

回答

1

我认为在用户查看网页的哪一部分和存储的信息之间总会有一段延迟在数据库中或您将这些信息存储在哪里, ,并且无论何时滚动或移动鼠标,都无法发送获取请求,因为这会导致可怕的请求数量。

所以在我看来,你只需要设置套件您的要求,以“心脏跳动”发送到您的服务器的间隔让我们说每5秒,这实际上是一个json数据包括当前链路他是浏览和页面的一部分以及其他可能会用到的其他数据,例如上次活动(您可以通过多种方式来测量它:例如,最后一个鼠标移过<body>移动) 这样,您就有机会在将来添加任何信息到heart beat将被传递到您的服务器,并给你更多的跟踪信息。