加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 使用Durandal的会话数据

发布时间:2020-12-15 23:52:27 所属栏目:asp.Net 来源:网络整理
导读:我刚刚开始使用Durandal.js,请原谅我这个愚蠢的问题…… 当用户向应用程序提出第一个请求时,系统会要求他们选择“配置文件类型”,我需要它可以访问网站中的每个其他视图模型,我首先要在shell视图模型中创建此属性,但不要怎么做. 如何在Durandal SPA中以类似
我刚刚开始使用Durandal.js,请原谅我这个愚蠢的问题……

当用户向应用程序提出第一个请求时,系统会要求他们选择“配置文件类型”,我需要它可以访问网站中的每个其他视图模型,我首先要在shell视图模型中创建此属性,但不要怎么做.

如何在Durandal SPA中以类似会话的方式存储数据的最佳方式?

谢谢!

解决方法

为您需要存储的数据创建一个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将服务器上的会话绑定到客户端.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读