【问题标题】:Where to store user data in SPA在 SPA 中存储用户数据的位置
【发布时间】:2015-06-06 15:17:47
【问题描述】:

我一直在使用 AngularJS 开发 SPA,并且我已经将用户数据存储在 Angular Value 服务中,但我对此并不满意,主要是因为 Angular Value 不在浏览器选项卡之间共享。因此,如果用户打开一个新的浏览器选项卡并在每次刷新页面时 (F5) 我必须向服务器请求用户数据,例如全名、电子邮件等。我使用的是 REST API。

这种方法好吗?如果我使用 localStorage,它将帮助我在选项卡之间共享数据,但我不知道这是否是一种更好的技术。

【问题讨论】:

    标签: javascript angularjs local-storage single-page-application user-data


    【解决方案1】:

    您可以在浏览器中存储数据的地方只有 3 个

    1. 饼干
    2. 本地存储
    3. 数据库(IndexedDB 或 Web SQL)

    您可以打开控制台面板来查看这些选项。

    考虑:

    1. 安全性

    这取决于您存储在 浏览器,如果它是用户敏感的,你永远不应该将它们存储在浏览器中!

    1. 尺寸

    你要存储的数据有多大?如果它很大,最好将它们存储在数据库中,你可以查看一些这个框架(PouchDB)

    如果它很小,你可以将它们存储在本地存储中

    【讨论】:

    • 好吧,根据你所说的,我必须与我的团队一起决定用户数据是否敏感,我猜不是。我忘了评论那部分问题是,当我使用 ngRoute 更改路由时,我必须再次请求用户数据,如果我将数据存储在 $rootScope 中呢?并在刷新和打开新标签时保留请求。
    • 那么你需要为每个请求进行缓存,你可以在这里查看stackoverflow.com/questions/14117653/…
    • 用户信息也可以缓存在一个单独的 javascript 文件中(添加到布局页面的标题),只有当基本用户信息(如姓名或缩略图)发生变化时才会更改。它可以缓存在客户端,因此每次刷新时都不需要下载它,而在服务器上它只在用户信息更改时生成。好处是它比 cookie 或 localstorage 更快
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2018-07-11
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多