【问题标题】:Store root scope data in browser local/ session storage and load after page reload将根范围数据存储在浏览器本地/会话存储中并在页面重新加载后加载
【发布时间】:2017-02-14 07:40:47
【问题描述】:

团队,我们已经实现了一个单页面应用程序,我们将一些数据存储在根范围内,以便在应用程序的其他页面中访问。在正常流程中一切正常。我们在浏览器刷新时遇到了问题。当用户在我们的一个应用程序页面中时,如果用户刷新页面,整个数据将从根范围丢失。我们尝试不允许刷新。但是,我们发现这是不可能的,甚至无法添加自定义消息来通知用户。现在,我们只是在用户刷新页面时注销用户,这对用户来说很尴尬,而且我们的应用程序也不需要那么多安全性。因此,我们正在考虑在刷新页面时将整个根范围数据添加到本地存储中,并且在重新加载页面后,我们将再次将整个数据从本地/会话存储数据加载到根范围。我们必须在一个地方这样做。因此,我们不必在单个模块页面上实现这一点。 有没有办法做到这一点。任何人都可以建议是否有其他方法。

【问题讨论】:

    标签: javascript jquery angularjs browser browser-cache


    【解决方案1】:

    请注意,HTML5 本地存储只有 800kb-10mb,具体取决于浏览器。我听说 Safari 有 99 idk。在最新的 Google Chrome (2/14/17) 中为 5mb。

    无论如何,您可以通过字符串化为 JSON 来创建本地存储:

    localStorage.setItem('myDataStorage', JSON.stringify(myData));
    

    然后检索它们

    var myRetrievedData = JSON.parse(localStorage.getItem('myDataStorage'));
    

    myDataStorage 是您创建的本地存储的名称。如果愿意,您可以使用不同的名称来创建多个 localStorage,但请注意,每个本地存储仅在大小上有所限制。不要指望使用 HTML 本地存储来保存高清图像更少的视频

    完成后,您的代码现在可以使用变量 myRetrievedData(或您想要的任何变量名称)来操作您检索到的数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多