Using JavaScript
I want to track the user activity (active or inactive) on my website and I'd like to store this info in my database
. I decided to use the activity-detector library which does indeed track the user activity, however if the user has the same webpage opened in 2 tabs then I'm going to end up with inaccurate information so how would I take into account the fact that the user can open the same webpage in 2 tabs?
Asked
Active
Viewed 51 times
2

Daniel_Kamel
- 610
- 8
- 29
-
Store the activity times for all tabs and merge them. – jabaa Jun 27 '23 at 12:12
-
Not sure. Maybe setting a [Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies) will do the need? Set a unique value to the header. It will be passed along the header while tracking the user activity. – Shri Hari L Jun 27 '23 at 12:17
1 Answers
4
With the combination of localStorage
and self.window.name
you can determine whether other windows/tabs are being used by the same user.
if (!localStorage.getItem('windowName')) {
// first visit
self.window.name = (new Date()).getTime();
localStorage.setItem('windowName', self.window.name);
}
if (localStorage.getItem('windowName') && localStorage.getItem('windowName') !== self.window.name) {
// i know you, but it's a different window
console.log('new window'):
// do stuff, unbind, delete, ... whatever you need to do
self.window.name = (new Date()).getTime();
}

tom
- 9,550
- 6
- 30
- 49