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

时间:2011-06-30 12:13:57

标签: javascript jquery web-applications cookies local-storage

我正在开发一个Web应用程序,并且非常喜欢如果用户对UI视图进行更改(例如,列表打开或关闭,某些查看首选项),这些更改在关闭浏览器后仍然存在稍后访问网络应用程序。

我能想到的可能选项:

  1. 在Cookie中存储UI首选项JSON对象。
  2. 使用HTML5本地存储(没有经验)
  3. 存储在mySQL数据库中(不热衷于将这些简单的数据存储在数据库中)
  4. 存储完成后,当用户返回并设置用户上次离开时​​的UI时,我将检索这些首选项。

    有没有人有这种功能的经验,可以建议用于UI状态保存和检索的最佳方法?

4 个答案:

答案 0 :(得分:31)

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

这将使用户在问题结束时遇到问题,例如缓存清除和本地存储不受支持的浏览器。

它还可以让用户在不同的计算机或浏览器中使用UI设置。

答案 1 :(得分:17)

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

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

如果您以后需要检索它,只需使用:

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

使用HTML5也有一些缺点,我建议你肯定通过cookie等添加对旧浏览器的支持。如果你想让用户拥有相同的设置,无论他登录的位置如何,你都没有除了使用数据库表之外的其他选择。

额外注意事项:请注意,每次请求都会向服务器发送Cookie。如果低带宽很重要并且cookie中定义了许多设置,则使用数据库表或本地存储更有意义。

答案 2 :(得分:5)

您是否希望在多台计算机上记住外观和字段更改? 如果它们被遗忘(清晰的cookie),它们是否至关重要还是会引起用户的重大挫折?

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

如果不需要,那么cookie或本地存储就足够了。 HTML 5 local storage实际上不是prevalent(有点老问题)。

如果您想跨机器记住,数据库是唯一的选择。

答案 3 :(得分:3)

在使用cookies之前我做过这种事情。我永远不想将这种东西存储在数据库中,因为它不是一个非常重要的功能,缓存问题或禁用的cookie应该不重要 - 有些人不会从中受益,但大多数人可能会这样做。如果您希望用户声明要在不同的计算机上保留,尽管您必须执行bhagyas建议并将其存储在数据库中。