2

我正在构建一个示例应用程序,让用户存储评论。我已经创建了注册和登录过程。当用户注册时,他的详细信息将存储在 MySQL 数据库中,并向浏览器返回一个令牌。现在他可以访问个人资料页面。

当现有用户登录时,他会被重定向到个人资料页面。只有当用户注册或登录时,才能访问个人资料页面。

登录后,如果他已经添加了评论,我想显示他的所有评论。

我的前端使用 Angular,后端使用 Laravel。对于身份验证,我使用 Satellizer。

我想知道,考虑到用户会添加、编辑他的评论这一事实,在处理数据时最好的方法是什么。我应该使用 localstorage 并将数据存储在键值对中,还是应该创建一个 json 文件,每次用户添加评论或进行更改时都会更新该文件。

我想知道处理来自服务器的数据的最有效方法是什么,以便应用程序即使在扩展到 10000 个用户和每个用户的大量数据时也能快速运行。

谢谢

4

2 回答 2

1

您可以在用户浏览器本地存储评论数据,但您应该妥善管理它。

我不知道您的服务器会有多少负载,也不知道现在投入的时间是否值得。

  • 您可以获取评论并将其存储在本地
  • 用户添加评论,然后您在本地更新并向服务器发送请求
    • 您需要跟踪请求响应,如果请求失败,请通知用户并从本地删除评论。
    • 如果请求成功,那么您可以继续前进。

** facebook 使用这种“成功第一”的方法,用户执行一个操作,他看到它立即发生,在后台可能需要几秒钟,只有当它失败时他们才会通知你。

** 看看他们的评论过程,当你评论时,它立即出现,没有加载......但在BG中加载发生了。

于 2016-02-16T13:47:00.563 回答
1

进行更改时,您应该在服务器上对其进行更新,而不仅仅是依赖本地存储。您可以使用 localstorage 来缓存,但它应该只用于不可变数据,它不应该真正用于将要更改的数据。

因此,在这种情况下,您将通过您的 API(最好是 RESTful 的!)添加和更新新评论。进行更改后,您可以将评论存储在本地,并且仅在用户发表新评论时更新它们,但是您很快就会遇到数据在不同客户端上无效的问题。(即,如果您在另一台计算机上更新评论,另一台计算机将不会知道)。

或者,您可以缓存评论,然后简单地 ping 服务器以查看是否添加了新评论。例如,这可以使用 HEAD 请求来检查您的评论资源上的最后修改日期。

于 2016-02-16T13:41:30.540 回答