如何使用Javascript检测用户首次访问我的网站?

如何使用Javascript检测用户首次访问我的网站?,javascript,Javascript,我有一个React应用程序,页面上有一个导游,但我使用localStorage在用户注册后访问功能时将firstAccess键设置为true,但我认为可以有更有效的方法来获取用户首次访问的信息,也许可以使用user Agent?问题是,如果用户是第一个访问权限,常用的方法是什么?我可以用一个简单的Javascript代码得到这个 当localStorare上的键firstAccess等于“true”时,巡更开始,但问题是当他完成巡更时,我将此键设置为false,但其他页面需要显示他们自己的巡更,

我有一个React应用程序,页面上有一个导游,但我使用localStorage在用户注册后访问功能时将firstAccess键设置为true,但我认为可以有更有效的方法来获取用户首次访问的信息,也许可以使用user Agent?问题是,如果用户是第一个访问权限,常用的方法是什么?我可以用一个简单的Javascript代码得到这个

当localStorare上的键firstAccess等于“true”时,巡更开始,但问题是当他完成巡更时,我将此键设置为false,但其他页面需要显示他们自己的巡更,但此时该键设置为false

我用这个开始巡演:

 localStorage.setItem("newUser", true);
但该密钥在用户注册后设置,并在其他页面上使用:

  function userRegistered() {
    const auxStorage = localStorage.getItem("newUser");

    if (auxStorage === "true") {
      setTourRun(true);
    }
  }
当巡更结束时,我将key设置为false:


  function cancelTour() {
    setTourRun(false);
    localStorage.removeItem("newUser");
  }
因为这一点,我不能在其他巡更页面中使用相同的键


预期的结果是,我可以识别每个页面的第一次使用,并开始每个页面的单独浏览。

我不知道你所说的效率是什么意思。。。本地存储非常高效。但是,我认为你应该从另一个角度考虑这个问题

当您第一次访问时,本地存储将是空的,所以请在完成检查后设置本地存储项

if (!localStorage.getItem('previouslyVisited')) {
  runTour();
  localStorage.setItem('previouslyVisited', 'true');
}

尝试使用Json对象检查巡更的进度

例如:

var progress = {
    tour1: true,
    tour2: false,
    tour3: false
};


changeProgress("tour2");

function changeProgress(tourNumber) {
    var p = JSON.parse(localStorage.getItem("progress"));
    if (tourNumber === "tour1") {
        p.tour1 = true;
    } else if (tourNumber === "tour2") {
        p.tour2 = true;
    } else if (tourNumber === "tour3") {
        p.tour3 = true;
    }

    localStorage.setItem("progress", JSON.stringify(p));
}

反过来做,如果“hasDoneTour!=true”,则执行巡更并将其设置为true。巡更不是顺序的,我认为这很好,但顺序上我可以通过道具完成上一步,但我不知道是否是某个页面上的第一个访问。这是一个很好的方法,你给我一些想法,使用键的值设置上次访问的页面,例如如果我访问了dashboard,则设置值“fromDash”,这是确认只访问了dash,其他具有相同逻辑的值,并有条件知道是否访问了该页面。或者用这种方式在每个页面上使用不同的键也可以,谢谢!