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

wil*_*age 32 javascript cookies jquery web-applications local-storage

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

我能想到的可能选择:

  1. 在UI中存储UI首选项JSON对象.
  2. 使用HTML5本地存储(没有经验)
  3. 存储在mySQL数据库中(不热衷于在数据库中存储这些简单的数据)

一旦存储,我将在用户返回时检索这些首选项,并将UI设置为上次离开时​​的UI.

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

bha*_*yas 33

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

这将使用户在最后遇到的问题更少,例如缓存清除和本地存储不支持的浏览器.

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


zat*_*ata 19

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

localStorage.setItem('someName', 'savedData');
Run Code Online (Sandbox Code Playgroud)

当您以后需要检索它时,您只需使用:

var data = localStorage.getItem('someName');
Run Code Online (Sandbox Code Playgroud)

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

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


Niv*_*vas 5

您是否希望在多台计算机上记住外观和字段更改?它们是否至关重要,或者如果它们被遗忘(明确的cookie)会导致用户沮丧吗?

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

如果不需要,那么cookie或本地存储就足够了.HTML 5本地存储并不是很普遍(有点老问题).

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


Jor*_*ork 5

我在使用cookies之前就做过这种事情。我永远不想将这种东西存储在数据库中,而且由于它不是一个非常重要的功能缓存问题或禁用 cookie 不应该真正重要 - 有些人不会从中受益,但大多数人可能会。如果您希望用户状态持续在不同的计算机上,尽管您必须按照 bhagyas 的建议进行操作并将其存储在数据库中。