我想跟踪用户访问我的网站/域的次数。 例如,假设我想在第10次访问网站后向用户显示消息。 每个页面加载不应被视为新访问。在这种情况下访问更像是一个会话。一次性浏览所有你想要的东西,这是一次访问。关闭浏览器并返回,这是第二次访问。
我认为通过利用localStorage和sessionStorage来做这件事会很好。我在sessionStorage中放了一个值来表明用户在“currentVisit”上,这样我就不会在每个页面加载上计算它们。这会在会话结束时消失。然后我在localStorage中有一个值,用于计算用户“visitCount”的总访问量。如果用户加载页面并且没有“currentVisit”值,请给它们一个并增加“visitCount”。
我担心使用本地/会话存储,因为我读过它并不是所有浏览器都支持,特别是移动浏览器。
我正在考虑在我的方法中使用indexedDB代替localStorage和会话cookie来代替sessionStorage。 您认为这项工作的正确工具是什么?
答案 0 :(得分:0)
在使用polyfill as I mentioned above时,您可以定义一个这样的简单函数,以便在用户未进入隐身或隐私浏览模式时跟踪用户的访问情况,并且不会清除或禁用Cookie您的网站:
function visitCount() {
var visits = Number(localStorage.getItem('visitCount'));
var current = Boolean(sessionStorage.getItem('session'));
if (!current) {
visits++;
}
localStorage.setItem('visitCount', visits);
sessionStorage.setItem('session', true);
return visits;
}
如果您关注信任客户端存储的任何警告(例如, security ),那么您应该使用服务器端解决方案和browser fingerprinting脚本来以更强大的方式跟踪匿名访问。