我需要能够为回访者设置不同的页面样式。
我正在尝试使用localStorage做到这一点,这是我到目前为止所拥有的。

1)。检查是否设置了访问标志,以及是否将一个类添加到正文中

if (localStorage.getItem("visit") !== null) {
    $('body').addClass('returning');
   }


2)。如果该标志不存在,则将其添加到localStorage

if (localStorage.getItem("visit") == null) {
    localStorage.setItem("visit", 1);
   }


问题是页面第一次加载此代码时工作,因为该标志不存在,但是在页面刷新后,该标志存在并且我成为回头客

仅当用户回到网站后而不是重新加载页面时,如何才能检测到回访者?

最佳答案

对于每个用户,存储一个timestamp而不是一个boolean

代码段

// When a user visits your web-page
var timestamp = localStorage.getItem("timestamp");

if (timestamp !== null) {
    // taking visiting-gap as 15 minutes
    var epochGap = 900;

    // convert timestamp to seconds
    var jsTimestamp = (new date(timestamp).getTime())/1000;
    var currentTimestamp = (new date(timestamp).getTime())/1000;

    // Mark visitor as returning if coming after the visiting-gap
    if (jsTimestamp > (currentTimestamp + epochHour)) {
        $('body').addClass('returning');
    }
}

// Save timestamp on first visit
if (localStorage.getItem("timestamp") == null) {
    var timestamp = new Date().getTime();

    localStorage.setItem("timestamp", timestamp);
}

10-07 21:13