0

我一直在開發一個帶有AngularJS的SPA,我已經將用戶數據存儲在一個Angular Value服務中,但我不覺得舒適,基本上是因爲Angular Value沒有在瀏覽器標籤之間共享。因此,如果用戶打開新的瀏覽器選項卡並在每個頁面上刷新(F5),我必須向服務器請求用戶數據,如全名,電子郵件等。我正在使用REST API。在SPA中存儲用戶數據的位置

這種方法是否正確?如果我使用localStorage,它將幫助我在選項卡之間共享數據,但我不知道這是否是一種更好的技術。

回答

2

只有3個地方,你可以存儲在瀏覽器中的數據

  1. 餅乾
  2. 本地存儲
  3. 數據庫(IndexedDB的或Web SQL)

您可以打開您的控制檯面板看到這些選項。

代價:

  1. 安全

這取決於如何重要或敏感存儲在 瀏覽器中的數據,如果是用戶敏感的,你永遠不應該將它們存儲在瀏覽器在第一名!

  • 大小
  • 多大的數據,你去商店?如果它是巨大的這是好事,它們存儲在數據庫中,你可以檢查出一些這個框架(PouchDB)

    如果是小,你可以只將它們存儲在本地存儲的

    +0

    有據可依關於你所說的我必須與我的團隊決定,如果用戶數據是敏感的,我想不是。我忘記說這個問題的一部分是,當我使用ngRoute更改路由時,我不得不再次請求用戶數據,那麼如果我將數據存儲在$ rootScope中呢?並在刷新和打開新選項卡時保留請求。 –

    +0

    然後你需要爲每一個請求緩存,你可以在這裏檢查http://stackoverflow.com/questions/14117653/how-to-cache-an-http-get-service-in-angularjs – Tim

    +1

    用戶信息也可以緩存在一個單獨的JavaScript文件中(添加到佈局頁面的標題),只有當名稱或縮略圖等基本用戶信息發生更改時纔會更改。它可以緩存在客戶端,因此在每次刷新時都不需要下載,而在服務器上它只是在更改用戶信息時生成的。好處是它比cookie或本地存儲更快 –

    相關問題