存储持久数据的最佳方式是什么?我想保存用户上次在页面上活动的时间。起初我使用本地存储,然后我切换到 cookie,因为它似乎更易于使用,现在我正在考虑将它存储在数据库中。你有什么建议。
另外,您能否建议一种在用户离开页面时进行注册的好方法?
存储持久数据的最佳方式是什么?我想保存用户上次在页面上活动的时间。起初我使用本地存储,然后我切换到 cookie,因为它似乎更易于使用,现在我正在考虑将它存储在数据库中。你有什么建议。
另外,您能否建议一种在用户离开页面时进行注册的好方法?
根据用户特定的方式,您希望该机制成为您应该采用客户端或服务器端方法。本地存储显然取决于设备,或者更准确地说,用户使用什么浏览器访问您的网站。
如果每次用户访问您的网站时都可能从同一台机器/浏览器访问您的网站,那么 cookie 应该可以完成这项工作。不需要本地存储,因为这更适合更大的数据块。此外,用户可能正在使用不支持本地存储的浏览器。Cookie 已经存在了很长时间,几乎可以在所有浏览器和设备上运行。
但是,如果您的网站可能会从不同的设备访问,比如家用计算机、办公室计算机,也可能是智能手机,那么您应该考虑使用用户帐户的服务器端解决方案。但要确保用户真正受益于创建用户帐户的努力(可能使用像 stackoverflow 这样的 OpenID)。否则,您会将网站的成功置于风险之中。
简而言之……这更像是一个设计决策,了解您的用户并确定您要实现的目标。
Cookie 经常用于存储非关键的用户偏好,这些偏好主要涉及网站使用情况,例如自动登录、语言、主题、时区等。由于这些都存储在用户的本地计算机上,因此 cookie 是客户端技术,可以由客户端自由删除,因此您可能不想依赖 cookie 来存储关键数据。
但是,如果要存储特定于域的数据,例如用户名、密码、电子邮件、收藏夹等,您可能确实需要使用关系数据库 (RDBMS),例如 MySQL、MS SQL 或 PostgreSQL。这些在处理大量数据和有用特征(即事务、效率、灵活性)的特征分数时是可行的。
如果您需要保存有关用户的其他信息,我会说将此信息与其他信息一起存储在数据库中,即您可以将字段“last_time”添加到用户数据库表中。如果您不使用数据库(很奇怪),那么添加一个只是为了存储此信息可能有点夸张。您能否详细说明您必须如何使用这些信息?使用 cookie 允许您仅在用户连接到站点时访问它,所以我认为这不是最好的解决方案。
总的来说,无论如何,我认为 SQL 是最好的选择。