首页 文章

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

提问于
浏览
0

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

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

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

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

1 回答

  • 0

    在使用polyfill as I mentioned above时,您可以定义一个这样的简单函数来跟踪用户's visits assuming they'不是处于隐身或隐私浏览模式,并且它们不会清除或禁用您网站的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;
    }
    

    如果您关注信任客户端存储的任何警告(例如,安全性),那么您应该使用服务器端解决方案和browser fingerprinting脚本以更健壮的方式跟踪匿名访问 .

相关问题