2015-07-04 73 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將被傳遞到您的服務器,並給你更多的跟蹤信息。