如上所述,它没有解决方案,因为它是匿名模式的操作逻辑。但是,解决方法是创建一个单独的会话类,即在启动应用程序时创建一个全局实例,这样客户端就不会依赖于 sessionStorage 或 Internet 连接。这个想法是在用户身份验证时启动会话全局实例,然后通过 getter 和 setter 使用它来处理任何需要的东西。唯一不好的一面是滥用内存,您必须始终清理不使用的内容并尽可能使用最大的优化。我在一些具有良好数据负载的测试应用程序中使用了它(操作了 50,000 条记录)并且我没有性能问题,有时它可以帮助你:)
前任:
// 在typescript中
interface CompanyInterface {
name: string,
enable : boolean
}
interface UserInterface {
name: string,
age: number,
company: CompanyInterface
}
interface SessionDataInterface {
token: string;
user: UserInterface;
}
class Session {
private data: SessionDataInterface;
public getData(key: string) {
return this.data[key];
}
public setData(key: string, value: any) {
return this.data[key] = value;
}
constructor(token: string | false = false) {
if (!token || token.length <= 10) {
// You Exception.....
}
}
}
// 在 Java 脚本中
var Session = /** @class */ (function () {
function Session(token) {
if (token === void 0) { token = false; }
if (!token || token.length <= 10) {
// You Exception.....
}
}
Session.prototype.getData = function (key) {
return this.data[key];
};
Session.prototype.setData = function (key, value) {
return this.data[key] = value;
};
return Session;
}());