我认为使用localStorage
是您最好的选择,因为客户端似乎需要您存储在那里的数据。如果数据没有变化,则不需要重复查询或观看localStorage
.
您可以做的另一件事是在您的 周围包裹一个闭包localStorage
,这样您在检索“大”数据时就不会总是碰到磁盘。每个浏览器的实现都localStorage
不同,因此无法保证一致的行为或 I/O 性能。
这还添加了一个简单的抽象层,它隐藏了实现,并在一个地方控制与用户数据相关的所有内容。
这是用户配置文件数据关闭的简单示例:
// UserProfile.js
var UserProfile = (function() {
var userData = {};
var getUserData = function() {
if (!userData) {
userData = JSON.parse(localStorage.getItem("userData"));
}
return userData;
};
var setUserData = function(userData) {
localStorage.setItem("userData", JSON.stringify(userData));
userData = JSON.parse(localStorage.getItem("userData"));
};
return {
getUserData: getUserData,
setUserData: setUserData
}
})();
export default UserProfile;
设置用户数据对象:这将覆盖localStorage
, 并在闭包内设置局部变量。
import UserProfile from '/UserProfile';
UserProfile.setUserData(newUserData);
获取用户数据对象:这将从闭包内部的局部变量中获取数据,否则localStorage
如果未设置则从那里获取。
import UserProfile from '/UserProfile';
var userData = UserProfile.getUserData();
这里的想法是将数据加载到内存中,从localStorage
,第一次,当你的应用程序加载时,或者在第一次 API 调用时。直到用户个人资料数据发生变化(例如,用户更新他们的个人资料),然后您将再次查询 API,并通过UserProfile.setUserData(..)
调用再次更新数据。