代码之家  ›  专栏  ›  技术社区  ›  DisgruntledGoat

HTML5本地存储是否有到期日?[副本]

  •  6
  • DisgruntledGoat  · 技术社区  · 14 年前

    数据在数据库中存储多长时间 localStorage

    0 回复  |  直到 5 年前
        1
  •  6
  •   Kerem    5 年前

    无法指定过期时间。这完全取决于用户。

    https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

    当然,应用程序存储在客户机上的某些东西可能以后就不在了。用户可以显式地摆脱本地存储,或者浏览器可能会遇到空间问题。防御性的编程很好。然而,根据这个词的一些实际定义,事物通常是“永远”的。

    编辑 -显然,如果您自己的应用程序认为内容太旧,它可以主动删除这些内容。也就是说,您可以在保存的内容中显式地包含某种时间戳,然后稍后使用它来决定是否应该刷新信息。

        2
  •  4
  •   Kerem    5 年前

    我建议把时间戳存储在 对象 存储在本地存储中

    var object = {value: "value", timestamp: new Date().getTime()}
    localStorage.setItem("key", JSON.stringify(object));
    

    var object = JSON.parse(localStorage.getItem("key")),
        dateString = object.timestamp,
        now = new Date().getTime().toString();
    
    compareTime(dateString, now); //to implement
    
        3
  •  0
  •   a55    4 年前

    lscache . 它会自动为您处理此问题,包括存储大小超过限制的实例。如果发生这种情况,它将开始修剪最接近其指定过期时间的项。

    readme :

    lscache.set
    
    Stores the value in localStorage. Expires after specified number of minutes.
    
    Arguments
    key (string)
    value (Object|string)
    time (number: optional)
    

    值得注意的是,本地存储由用户决定有一个很好的理由。但是,当您需要存储非常临时的数据时,lscache之类的东西确实很有用。

    推荐文章