2016-02-16 41 views
2

我正在構建一個示例應用程序,允許用戶存儲註釋。 我創建了註冊和登錄過程。當用戶註冊時,他的詳細信息存儲在MySQL數據庫中,令牌返回給瀏覽器。現在他可以訪問Profile頁面。在使用基於令牌的身份驗證時使用數據的最佳方法

當現有用戶登錄時,他被重定向到配置文件頁面。只有當用戶註冊或登錄時才能訪問配置文件頁面。

登錄後,我想顯示他的所有評論,如果他已經添加它們。

我的前端是Angular,後端使用Laravel。爲了驗證我使用衛星。

我想知道,玩數據時最好的方法是什麼,考慮到用戶將添加,編輯他的評論。我應該使用localstorage並將數據存儲在鍵值對中,還是應該創建一個json文件,每次用戶添加評論或進行更改時都會更新這些文件。

我想知道從服務器處理數據的最有效方式是什麼,以便應用程序即使在擴展到10000個用戶和每個用戶的大量數據時也是快速的。

感謝

+0

你說的是在本地存儲用戶評論,而不是每次從服務器獲取權限? –

+0

是的,我對如何解決這個問題感到困惑。此外,如果用戶進行了更改,它將在本地反映出來,但是我應該在什麼時候更新服務器 –

回答

1

你應該更新它在服務器上更改時,而不是僅依靠localStorage的。你可以使用localstorage來緩存,但它只能用於不可變數據,它不應該用於將要改變的數據。

因此,在這種情況下,您將通過API添加和更新新評論(理想情況下爲RESTful!)。一旦你做出改變,你可以在本地存儲評論,只有在用戶發表新評論時才更新評論,但是你很快會遇到數據在不同客戶端無效的問題。 (即如果您更新另一臺計算機上的註釋,則其他計算機將不知道)。

或者,您可以緩存評論,然後只需ping服務器以查明是否添加了新評論。例如,這可以使用HEAD請求來檢查評論資源上的最後修改日期。

1

您可以將評論數據本地存儲在用戶瀏覽器中,但是您應該妥善管理它。

我沒有多少負載您的服務器將有,如果現在投入的時間值得。

  • 可以提取評論,並將它們存儲在本地
  • 用戶添加註釋,然後你在本地更新併發送一個請求到服務器
    • 你需要跟蹤請求的響應,如果請求失敗,因此通知用戶並從本地刪除評論。
    • 如果請求成功,您可以繼續前進。

** Facebook的使用這個「成功至上」的方針 用戶做一個動作,他看到它發生瞬間,它可能需要幾秒鐘,只有當它失敗,他們會通知你的背景。

**看看他們的評論過程,當你評論時,它立即出現,沒有加載......但在BG中發生了負載。

+1

您必須非常小心才能立即顯示評論。這被稱爲「樂觀編程」,如果用戶認爲評論已被添加,會導致嚴重的問題,只有當他們離開時纔會失敗。 –

+1

「樂觀編程」這是我正在尋找的短語。當然,你不會在關鍵點上做,它取決於你的應用當然 –

+0

@AndrewKhan和TzookBarNoy--我們嘗試的方法之一是 - >當用戶登錄時,獲取該用戶的所有數據在json文件中。現在應用程序從json文件獲取數據,當他更改某些內容時,更改會在服務器上更新並且json文件會再次更新。您對此方法有何看法..? –

相關問題