gpt4 book ai didi

javascript - 使用 localStorage 代替 Cookies 有什么缺点吗?

转载 作者:IT王子 更新时间:2023-10-29 03:03:09 25 4
gpt4 key购买 nike

在我以前的网站上,我曾经使用 cookie 仅在第一次访问时显示预主页。效果很好 ( see for example here ),但今天使用 cookie 并不那么流行,所以我想尽可能避免使用它。

现在,我的新网站项目几乎总是通过 javascript(显示模态框)启动预置,因此我不需要在服务器端执行任何操作。我正在考虑使用 HTML5 localStorage 而不是 cookie,如果浏览器没有 localStorage,则回退到 cookie。这是一个好主意吗?在可用性、隐私保护和网站性能方面有何影响?

使用 localStorage 将提高禁用 cookie 的用户的可用性。但我知道某些 HTML5 功能只能在某些浏览器中选择加入(如地理定位)。在任何浏览器上对 localStorage 是否有类似的限制?如果 localStorage 可用但我的网站已停用,是否会出现 JS 错误?

最佳答案

可用性

用户不会知道您使用的是 localStorage 还是 cookie。如果用户禁用 cookie,localStorage 也将不起作用。

性能

两种方法之间没有明显的速度差异。

session 存储

sessionStorage 仅用于该浏览器选项卡的 session 。如果关闭选项卡, session 将丢失,数据也将丢失,这类似于任何后端语言上的 session 变量。

本地存储

localStorage 将对浏览器中的任何选项卡或窗口可用,并且会一直存在,直到被用户或程序删除。与 cookie 不同,您无法设置过期时间。 localStorage 也有更大的存储限制。

您的问题

  1. 您没有使用此数据服务器端,因此不需要 cookie。与 cookie 不同,localStorage 永远不会发送到服务器。
  2. 如果用户禁用 cookie,localStorage 也将不起作用。

回退示例

您可以使用 Modernizr 来验证 localStorage 是否可用,如果不可用,则使用存储 cookie。

if (Modernizr.localstorage) {
// supports HTML5 Storage :D
} else {
// does not support HTML5 Storage :(
}

您也可以放弃 Modernizr 并使用检查 typeof Storage !== 'undefined'

关于javascript - 使用 localStorage 代替 Cookies 有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com