function getIdTrackingUser(){ if ( sessionStorage.getItem("id_page_tracking_user") && sessionStorage.getItem("id_page_tracking_user") !== null && sessionStorage.getItem("id_page_tracking_user") != undefined && sessionStorage.getItem("id_page_tracking_user") != '' ) return; $.ajax({ url: 'https://www.erasroom.com/assets/ajax/page-tracking/get-tracking-user.php', method: 'POST', success: function(response) { sessionStorage.setItem("id_page_tracking_user", response); }, error: function(request, msg, error) { console.error(msg); } }); } function pageTrackingUpdate(){ $.ajax({ url: 'https://www.erasroom.com/assets/ajax/page-tracking/page-tracking.php', data: { url: window.location.href, page: 'search-for-a-room', id_oggetto: '15', id_page_tracking_user: sessionStorage.getItem("id_page_tracking_user") }, method: 'POST', success: function(response) { }, error: function(request, msg, error) { console.error(msg); } }); } /** * @param lockTime Tempo entro il quale se ho visitato giĆ  una pagina non faccio l'update (5 minuti) */ function pageTrackingSessionStorage(lockTime = 5 * 60 * 1000) { if ( !sessionStorage.getItem("id_page_tracking_user") || sessionStorage.getItem("id_page_tracking_user") == null || sessionStorage.getItem("id_page_tracking_user") == undefined || sessionStorage.getItem("id_page_tracking_user") == '' ) return; let urls = sessionStorage.getItem("urls"); if (!urls) { urls = []; } else { urls = JSON.parse(urls); } let now = new Date().getTime(); let fiveMinutes = lockTime; let index = urls.findIndex(item => item.url === window.location.href); if (index === -1) { urls.push({ url: window.location.href, timestamp: now }); sessionStorage.setItem("urls", JSON.stringify(urls)); pageTrackingUpdate(); } else { let lastVisitTime = urls[index].timestamp; if (now - lastVisitTime > fiveMinutes) { urls[index].timestamp = now; sessionStorage.setItem("urls", JSON.stringify(urls)); pageTrackingUpdate(); } } } $( document ).ready(function() { getIdTrackingUser(); pageTrackingSessionStorage(); });