为您需要存储的数据创建一个 amd 模块。
然后只需要该模块作为任何其他需要它的模块的依赖项。
有点像这样:
会话模块
define(function () {
return {
someVariable: 'value1',
someVariable2: 'value2'
}
})
其他一些模块
define(['session'], function(session) {
return {
getValue1: function () {
return session.someVariable;
},
obs1: ko.observable(session.someVariable2)
}
})
编辑** AMD 模块不会污染窗口对象的全局命名空间。但是,如果您不想将您的会话作为依赖项,而只是通过全局变量访问它,那很好。
shell.js
如果您愿意,可以在您的文件中声明它并执行以下操作:
define(function () {
window.session = { someVariable: 'value1', someVariable2: 'value2' };
})
然后在其他一些模块中,您可以像这样访问会话对象:
define(function() {
return {
getValue1: function () {
return session.someVariable;
},
obs1: ko.observable(session.someVariable2)
}
})
此信息不会在页面刷新之间保留。它仅在内存中。如果您希望保留会话数据,除非您计划使您的应用程序成为离线应用程序,否则我不会考虑在客户端上保留任何信息。离线应用程序是即使没有互联网访问也可以工作的应用程序。但是,如果您的应用程序要求用户始终连接到互联网,那么我只会将会话数据存储在服务器上。因此,只需使用 Web 服务来保存会话数据并检索它。
您可以使用 cookie 将服务器上的会话绑定到客户端。