【问题标题】:What is the difference between $cookies and localStorage?$cookies 和 localStorage 有什么区别?
【发布时间】:2014-03-22 19:19:26
【问题描述】:

什么是 $cookies 与 localSTorage。

$cookies.myFavorite = '史蒂夫·乔布斯'; localStorage.myFavorite = '史蒂夫·乔布斯';

【问题讨论】:

  • Angular 只知道一个而不知道另一个?很高兴听到更多细节..
  • 谢谢@Meryn Stol,但为什么要发布呢?在该链接上没有看到对 Angular 的引用
  • 我发布此内容的主要原因是因为其他人逐字引用了此内容,并且知道 cookie 和 localStorage 之间的区别(以及其他存储选项与答案相关)。你会面临一个权衡:使用在顶部撒上一些 Angular 魔法的 cookie,或者使用 localStorage。我认为到目前为止,最重要的是决定你想在哪里存储东西,而不是你是否想使用 Angular。

标签: angularjs local-storage


【解决方案1】:

$cookies 是一个 Angular 模块,它接受浏览器 cookie 函数并将它们包装在 Angular 中。 Cookie 的存储容量比 localStorage 小(4k 而不是 5m),并且可以配置为在您每次尝试使用时提示访问者使用/接受。这会迅速恶化用户体验。正是出于这些原因,不建议将 Cookie 用于在浏览器中长期存储信息。 Cookie 在技术文盲中也因传播病毒或以其他方式有害而享有盛誉,这两者都不是应得的,也不是完全正确的。

localStorage(及其配套的 sessionStorage)随着 HTML5 的到来对网络来说有点新,并且非常有用。虽然可以通过设置专门禁用它们,但大多数浏览器都预先配置了它们,您无需担心。与 cookie 不同,用户无法在每次浏览器想要使用这些功能时得到提示。它们要么关闭,要么打开,并且没有中间。这为您的 Web 应用程序提供了更加无缝的体验。

建议使用 localStorage 在浏览器中存储超出当前会话的内容。要删除 localStorage 中的内容,您必须通过 localStorage.removeItem(itemName) 明确清除它们。

sessionStorage 建议用于存储您不希望在当前会话之后持续存在的内容。这是因为当访问者离开域或关闭浏览器时 sessionStorage 会被彻底清除。这使其成为存储基于会话的信息(例如临时购物车、要比较的项目列表等)的绝佳存储库。

这里需要注意的是,个人用户可以清除 cookie 和浏览器存储,不应完全依赖于存储。最好的选择始终是驻留在服务器上的数据库存储。

【讨论】:

  • 感谢 @MBielsji - 感谢您确认 Angular $cookiedocument.cookie 的角度包装器
【解决方案2】:

$cookies 将被覆盖,它们有一个临时存储空间。

localStorage 有一个持久存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2012-09-21
    • 1970-01-01
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    相关资源
    最近更新 更多