2

我想向我网站上特定页面的首次访问者显示一条消息。该消息只需要出现一次。

使用 cookie 会很简单,但使用 HTML5 localStorage 有更多好处吗?如果是这样,它将如何实施?

4

4 回答 4

7

根据您的描述,仅使用 cookie 几乎更容易且更不容易出错。并非所有浏览器都具有相同的 HTML localStorage 实现,尤其是 IE 7+8。但是,它们都使用 cookie,并且不会出现跨浏览器兼容性问题。

查看此 SO 以获取更多信息:本地存储、会话存储、Web 存储、Web 数据库和 HTML5 中的 cookie

于 2012-05-09T22:18:03.357 回答
3
  1. HTML5 localStorage 实现起来会容易得多,它不需要这么多行,而且实现起来非常简单。这是一个示例:http ://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_webstorage_local_clickcount
  2. 此处描述的另一个选项是 cookie。Cookie 是一种广泛使用的解决方案,但它需要更多的行来编写 cookie,但正如上面提到的那样,优点是 cookie 在许多旧浏览器中都被使用。这是 cookie 的示例: http ://www.w3schools.com/js/tryit.asp?filename=tryjs_cookie_username

展望未来,考虑到 OP 和浏览器都在发生巨大变化,现在越来越多的浏览器必须支持 HTML5,我会考虑 localStorage

于 2012-05-09T22:30:20.160 回答
1

即兴发挥,我可能会推荐 cookie,但这取决于您的用户使用的浏览器以及您希望如何呈现您的消息。

Cookie 更适合更广泛的受众,因为所有浏览器都支持它们。IE 6 和 7 等较旧的浏览器不支持本地存储。Cookies 也可以在服务器端进行操作。因此,如果您要显示的消息是在服务器端呈现的,那么 cookie 可能是一个更好的选择。

本地存储更容易通过 JavaScript 访问,但使用它并没有太多优势。

于 2012-05-09T22:25:11.267 回答
1

localstorage 将在用户计算机上保存最多 5 MB 的数据,唯一不好的是存储永远存在,如果您需要过期,则需要这样做,cookie 会自动处理。

使用本地存储的示例:

var 访问 = parseInt(localStorage["numVisits"]);

var el = document.getElementById("cookieData");

if (isNaN(visits)) {
    visits = 1;
    el.innerHTML = "Welcome to the site!";
} else {
    visits += 1;
    el.innerHTML = "Welcome back! You've been here " + visits + " times.";
}

localStorage["numVisits"] = visits;
于 2012-05-09T22:38:06.873 回答