在Web应用程序中存储小型UI用户首选项的最佳方法是什么?

47

我正在开发一个网络应用程序,很喜欢这个想法:如果用户更改了 UI 视图(例如,打开或关闭列表,某些查看首选项),那么在他们关闭浏览器并在以后的日期访问 Web 应用程序时,这些更改将保留下来。

我能想到的可能选项:

  1. 将 UI 首选项 JSON 对象存储在 cookie 中。
  2. 使用 HTML5 本地存储(没有此方面的经验)
  3. 在 MySQL 数据库中存储(不喜欢在数据库中存储如此琐碎的数据)

一旦存储,当用户返回时,我将检索这些首选项,并将 UI 设置为他们上次离开时的状态。

是否有人有此类型特性的经验,并可以建议 UI 状态保存和检索的最佳方法?

4个回答

46

如果它很小,您应该将 UI 设置的 JSON 对象存储在自己的数据库中。

这样做会让用户遇到更少的问题,比如缓存清除和不支持本地存储的浏览器。

这也使得用户可以在不同的电脑或浏览器上使用 UI 设置。


1
你让我眼前一亮,我一直在考虑在客户端设置偏好。谢谢。 - Nishad K Ahamed

30

使用HTML5本地存储非常简单:

localStorage.setItem('someName', 'savedData');

当需要稍后检索时,只需使用以下代码:

var data = localStorage.getItem('someName');

使用HTML5也有一些缺点,我建议您通过cookie等方式一定要支持旧版浏览器。但是如果您希望使用户在任何地方登录后都能拥有相同的设置,则除了使用数据库表之外别无选择。

额外提示:请注意,每个请求都会发送cookie到服务器。如果低带宽很重要,并且存在许多在cookie中定义的设置,则使用数据库表或本地存储更加合理。


6

您希望在多台机器上记住外观和字段更改吗?如果它们被遗忘(清除cookies),它们是否很重要或会导致主要用户挫败感?

这个问题的答案决定了您是将其存储在本地还是服务器上。

如果不需要此功能,则cookie或本地存储应该足够。 HTML 5本地存储并不真正普及(一个有点过时的问题)。

如果想要跨设备记住,则数据库是唯一的选择。


5

我以前用cookies做过这种事情。我不想把这种东西存储在数据库中,因为它不是一个非常重要的功能,缓存问题或禁用cookie也不太重要——有些人可能得不到好处,但大多数人可能会受益。如果你想让用户的状态在不同的计算机上持久存在,那么你就需要按照bhagyas的建议将其存储在数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接