您如何计算用户对您网站客户端的累计访问量?

时间:2018-02-27 16:24:47

标签: javascript local-storage session-storage

我想跟踪用户访问我的网站/域的次数。 例如,假设我想在第10次访问网站后向用户显示消息。 每个页面加载不应被视为新访问。在这种情况下访问更像是一个会话。一次性浏览所有你想要的东西,这是一次访问。关闭浏览器并返回,这是第二次访问。

我认为通过利用localStorage和sessionStorage来做这件事会很好。我在sessionStorage中放了一个值来表明用户在“currentVisit”上,这样我就不会在每个页面加载上计算它们。这会在会话结束时消失。然后我在localStorage中有一个值,用于计算用户“visitCount”的总访问量。如果用户加载页面并且没有“currentVisit”值,请给它们一个并增加“visitCount”。

我担心使用本地/会话存储,因为我读过它并不是所有浏览器都支持,特别是移动浏览器。

我正在考虑在我的方法中使用indexedDB代替localStorage和会话cookie来代替sessionStorage。 您认为这项工作的正确工具是什么?

1 个答案:

答案 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脚本来以更强大的方式跟踪匿名访问。