/ / Визначення, чи припинив користувач прокрутку за допомогою скасування jQuery - javascript, jquery

Визначення того, чи перестає користувач прокручуватись за допомогою debounce jQuery - 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 для відповіді № 1

Я думаю, що між ними завжди буде затримкащо "користувач переглядає" яку частину "вашої веб-сторінки та збережену інформацію в БД або де ви коли-небудь зберігаєте цю інформацію, і ви також не можете надіслати запит на отримання кожного разу, коли він прокручує або рухає мишкою, оскільки це призводить до жахливої ​​кількості запитів.

тому, на мій погляд, вам просто потрібно встановити інтервал, який відповідає вашим вимогам, щоб надіслати "серцебиття" на ваш сервер, скажімо, кожні 5 секунд, що насправді є json дані включають поточне посилання, яке він переглядає таяку частину сторінки разом з будь-якими іншими даними ви можете знайти для себе корисними, наприклад останню активність (це можна виміряти різними способами: напр. остання миша над <body> рух) таким чином у вас є шанс, як і в майбутньому, додати будь-яку інформацію до цього heart beat буде доставлено на ваш сервер і надасть вам більше інформації про відстеження.