【问题标题】:How to auto expire local storage values in angular js?如何在 Angular js 中自动过期本地存储值?
【发布时间】:2015-05-06 09:52:37
【问题描述】:

我在我的应用程序中使用 localStorage。 我想在 20 分钟后清除这些值。 你能帮帮我吗?

【问题讨论】:

标签: angularjs angularjs-directive local-storage


【解决方案1】:

我为 angular-localStorage (https://github.com/grevory/angular-local-storage) 编写了一个扩展,当您在 set 方法中提供可选参数时,它能够自动删除 localStorage 中的条目。

https://gist.github.com/Kyoss79/8cd37a54679804fdeb6d

【讨论】:

  • 非常感谢!应该是图书馆的一部分。也许你可以贡献?
  • @Kyoss 我是否认为这会增加到期时间,以便您可以查询 localstorage 并在该行太旧时删除该行?我看不到任何自动使该行过期的内容?整齐的添加。绝对值得在核心库中拥有。 :)
【解决方案2】:

在引导您的模块调用后,运行并设置一个 $interval,在 20 分钟后清除本地存储。

app.run(function($interval){
  $interval(() => {
    delete localStorage[key]
    // delete all the required localStorage variables by specifying their keys
  }, 1000*60*20)
})

【讨论】:

  • @HarryBosh 是的。该页面需要打开才能正常工作。我们必须将数据与到期时间戳一起存储以进行验证。获取数据时可以使用此时间戳,并且用于此的函数可以删除数据并在数据过期时返回 null。希望这会有所帮助:)
  • 如果页面需要打开,你不能真正“自动过期”
  • @HarryBosh 没错,您不能直接自动过期。您可以使用上述评论中提到的解决方法。
【解决方案3】:

根据 W3Schools:

localStorage 对象存储没有过期日期的数据。关闭浏览器不会删除数据,次日、次周或次年可用。

但是,类似的问题已经在其他地方提出并得到了回答:When do items in HTML5 local storage expire? 那里提到了一些可能对您有用的解决方法。

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2018-06-19
    • 2016-05-12
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多