首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该在会话中存储视图模型或域模型吗?

在会话中存储视图模型或域模型是一种常见的做法,但是否适合取决于具体的应用场景和需求。下面是对这个问题的完善且全面的答案:

存储视图模型或域模型在会话中可以有以下优势:

  1. 数据共享:将模型存储在会话中可以确保在同一个会话中的不同请求之间共享数据,避免了重复查询数据库或其他数据源的开销。
  2. 性能优化:通过将模型存储在会话中,可以减少数据库查询的次数,提高系统的响应速度和性能。
  3. 状态管理:会话中存储模型可以方便地管理用户的状态,例如购物车中的商品、用户的登录状态等。

然而,存储视图模型或域模型在会话中也存在一些潜在的问题:

  1. 内存占用:如果模型较大或会话数量较多,会话中存储模型可能会占用大量的内存资源,增加服务器的负载。
  2. 数据一致性:如果多个请求同时修改了会话中的模型,可能会导致数据不一致的问题,需要额外的同步机制来保证数据的一致性。
  3. 扩展性:如果应用需要水平扩展,即多个服务器之间共享会话数据,会话中存储模型会增加复杂性和同步的难度。

综上所述,是否应该在会话中存储视图模型或域模型取决于具体情况。对于小型应用或需要快速开发的场景,存储模型在会话中可能是一种简单有效的方法。对于大型应用或需要高度可扩展性的场景,可以考虑使用分布式缓存或数据库等外部存储来管理模型数据。

腾讯云相关产品推荐:

请注意,以上推荐仅供参考,具体选择应根据实际需求和技术架构进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在PowerDesigner设计物理模型3——视图存储过程和函数

视图 在SQL Server中视图定义了一个SQL查询,一个查询可以查询一个表也可以查询多个表,在PD定义视图与在SQL Server定义查询相似。...切换到SQL Query选项卡,在文本框可以设置视图定义的查询内容,建议直接先在SSMS验证视图定义SQL语句的正确性,然后再将SQL语句复制粘贴到该文本框。...存储过程和函数 存储过程和用户自定义函数都是在同一个组件设置的,在工具栏单击Procedure按钮,然后在设计面板单击一次便可添加一个Procedure。...例如要创建一个存储过程根据学生的学号获得学生所选的课程,那么对于的操作如下: 在指针模式下双击添加的Procedure,打开Procedure属性窗口,在General选项卡可以设置该存储过程的名字。...然后切换到Definition选项卡,该选项卡定义了存储过程的定义,在下拉列表框,选择选项,如果是要定义函数,那么就需要选择

2.5K20

if 是前端 Leader, 前端业务开发做不做设计?

因为现在不卷工作了,公司也开始的考勤打卡,觉得挺好了,一切按规矩办事,到点就弹射下班。 工作只是生活的一部分而已,工作的目的本来就是为了生活过得更好不是?这才应该是正常的人生形态,你说是不是?...通常也不是由该业务来实现。 使用子视图分离团长和团员的不同角色的业务 使用黄色标记跨泳道之间的流程,用蓝色标记角色的业务发起点。...在 if 是前端团队 Leader,怎么做好概要设计 讲过类似的话题,可以结合一起看吧。 2.1 页面/模块拆分 根据业务需求以及产品原型对业务内的页面进行拆分。...模型应该包含哪些内容呢? 业务状态。即我们在上一节识别出来的业务状态。在模型层中会为不同’主体‘创建一个状态变量,用于存放当前的状态。 业务数据。...2.2.3 输出案例 以登录 SDK 为例: 业务状态: 登录状态 初始化:创建会话 登录 登录成功:重新登录、更新用户信息、退出登录 登录失败:再次登录 业务数据: 会话信息 失败信息

20120
  • 「首席架构看领域驱动设计」领域驱动的设计和开发最佳实践

    将从一个典型的模型应该具有的特征列表开始,以及何时在企业中使用模型(与完全不使用模型使用贫血域模型相比)。...应该在容器外部(和IDE内部)是单元可测试的。 它应该使用POJO编程模型进行设计,而不需要任何技术框架依赖(总是告诉公司的项目团队,我们用于软件开发的技术是Java)。...这就是为什么大多数的EA组件(业务基础设施)应该在模型设计和实现。...类似地,其他Java EE资源(如数据源、Hibernate会话工厂和事务管理器)也被注入到服务和存储库对象。...开发该框架是为了减少web应用程序开发模式的样板代码。在使用ROO时,我们定义模型,然后框架(基于Maven原型)为模型-视图-控制器(MVC)、DTO、业务层Facade和DAO层生成代码。

    1.6K30

    从单体架构迁移到 CQRS架构

    因此,我们可以在消息携带特定的动作,使后端更容易识别每个动作,并有一个相应的实现。 在这个阶段,CQRS 的 C 出现了,消息就是一种命令。然而,可扩展性问题仍未得到解决。...读取时,客户端需要 DTO,所以后端可以在读路径上做一些专门针对读取的优化,比如从原来的对象预先生成 DTO,并将 DTO 存储在专门的数据库以供读取。...写应该专注于持久化,各种读视图应该在写路径上处理。但是,读路径上只有读,谁该准备那些读视图? 因此,完整的解决方案是这样的: 左边的写路径和右边的读路径已经在 CQS 部分介绍过了。...实际上,我们已经有了可以作为事件存储的消息。对于写路径,按顺序存储消息非常有效。借助这些消息,很容易根据需要创建出不同的读视图。这种方法也被称为事件源。 但仅有事件还很难有效地利用。...总结一下 CQRS 数据的整个生命周期: 数据从客户端开始,以命令格式进入后端。根据业务逻辑,它被转换为对象并存储在数据库。这些对象被转换为各种读视图,并根据要求存储在不同的专用读数据库

    45920

    Django 面试题

    过完年后,就是春招了,是找工作的好时机,找工作换工作的同学需要好好准备一下面试了,最近精选了 10 个关于 Django 的面试题,如果要看更多面试题目,请在公众号后台回复「面试」获取。...它是在需要时添加到类的功能包。实际使用通过类的继承将功能添加到所需要的类。在 Django ,这些软件包用于基于类的视图中。...当开发人员不需要大量功能仅希望使用某些功能时,他们可以使用 mixin 将功能所需的部分注入到类。 7. 什么是 views,怎么编写 views?...Django 的会话框架能够在网站请求时存储和检索任意数据。session 数据保存在服务器端,将发送和接收 cookies 的过程抽象化,session 通过配置中间件来实现。...最后的话 以上 10 个问题是认为比较有代表性的几个问题,如果需要更多的 Django Python 相关面试题目,请在公众号后台回复「面试」获取。

    1.6K30

    J2EE 核心模式学习理解和记录

    无法持久化、会超时、可以涉及事务;支持构造有状态无状态的对话模型。...业务层和集成层不佳实践: 对象模型关系模型每个用例直接映射成实体 bean:导致粒度过细,EJB 就给网络传输带来太多的负担; 通过 getter、setter 暴露 EJB 所有属性:这也是不好的...视图助手终究是 “视图” 的助手,它的核心始终是视图,对于已经生成了的成熟的具备一定模型的数据,试图助手协助将它们以某种合适的方式展示出来,而不应当做复杂具体的业务逻辑。...,不涉及浏览器跨的安全性问题;SiteMesh 是一个很适合对页眉、页脚等页面通用元素拼装的框架,比 jsp:include 标签优雅;更小维度上,标签的引用也可以认为是视图的复合。...业务领域存储:将持久化逻辑从对象模型中分离出去。比如最常用的 BMP 和 CMP,无需根据不同的业务对象类型建立不同的数据库脚本,只需要维护好业务领域侧的模型配置,存储事件是透明的。

    63810

    从单体架构迁移到 CQRS 后,觉得 DDD 并不可怕

    因此,我们可以在消息携带特定的动作,使后端更容易识别每个动作,并有一个相应的实现。 在这个阶段,CQRS 的 C 出现了,消息就是一种命令。然而,可扩展性问题仍未得到解决。...读取时,客户端需要 DTO,所以后端可以在读路径上做一些专门针对读取的优化,比如从原来的对象预先生成 DTO,并将 DTO 存储在专门的数据库以供读取。...写应该专注于持久化,各种读视图应该在写路径上处理。但是,读路径上只有读,谁该准备那些读视图? 因此,完整的解决方案是这样的: 左边的写路径和右边的读路径已经在 CQS 部分介绍过了。...实际上,我们已经有了可以作为事件存储的消息。对于写路径,按顺序存储消息非常有效。借助这些消息,很容易根据需要创建出不同的读视图。这种方法也被称为事件源。 但仅有事件还很难有效地利用。...总结一下 CQRS 数据的整个生命周期: 数据从客户端开始,以命令格式进入后端。根据业务逻辑,它被转换为对象并存储在数据库。这些对象被转换为各种读视图,并根据要求存储在不同的专用读数据库

    89240

    6个最好的Go语言Web框架

    你有时间找到一个产品级的外部包来完成工作?你确定这与你应用程序的其它部分一致?...坏处是主应用程序和子并不相连而且默认情况下它们并不直接共享逻辑。 会话(Sessions) http会话被支持并可以在你的特定处理器中使用。...一些Web框架支持使用后台数据库来存储会话,以便在服务器重启之间获得持久性。 Buffalo 使用 gorrila 会话,这比其他的实现要慢一点点。...MVC 模型-视图-控制器(MVC)是在计算机上实现用户界面的软件架构模式。它将一个给定的应用程序分成三个相互关联的部分。这样做是为了将信息的内部表示与信息呈现给用户并让用户接受的方式分离开来。...当框架支持这一功能时,你可以在发送给客户端之前检索,重置修改的状态代码、正文和头文件(在基于net/http的Web框架,默认情况下这是不可能的,因为正文和状态代码在写入后无法检索更改)。

    1.4K10

    go语言最快最好运用最广的web框架比较(大多数人不了解的特性)

    (Subdomains) 当您可以直接从Web应用程序注册每个x,y子的路由。...会话(Sessions) 支持http会话并准备在特定处理程序中使用时。 一些Web框架支持后端数据库来存储会话,因此您可以在服务器重新启动之间获得持久性。...Wiki: https://en.wikipedia.org/wiki/WebSocket 视图(aka模板)嵌入到应用程序 通常,您必须将所有模板文件与Web应用程序的可执行文件并行传输。...MVC 模型 - 视图 - 控制器(MVC)是用于在计算机上实现用户界面的软件架构模式。 它将给定的应用程序划分为三个相互关联的部分。 这样做是为了将信息的内部表示与向用户呈现和接受信息的方式分开。...当框架支持此功能时,您可以在发送到客户端之前检索重置修改写入的状态代码,正文和标题(在基于net/http的Web框架,默认情况下这是不可能的,因为无法检索更改正文和状态代码 书面)。

    2.7K40

    关于Java持久化相关的资源汇集:Java Persistence API

    JPA实体仅供本地使用,重点关注模型。因此,无法在JPA实体上配置事务性(远程边界安全性)。而是必须使用会话bean façade(消息驱动bean),才可以通过EJB协议使用这些实体。...回答:EntityManager负责对象模型和数据库之间的交互,但是仍然在会话实现安全性、事务控制、远程处理、有状态的临时数据存储,而操作单元编程模型无法解决以上问题。...一旦开始钻研Kodo的 锁定组 之类的功能,则对于固定的模型,可以从基于JPA的系统获得更多并发事务。 问题:如何为AquaLogic DSP应用JPA?...问题:在JPA可以调用存储过程?...就像在会话bean帮助类那样? 回答:JPA实现仅扫描实体类(和映射超类以及嵌入类)来查找命名查询。

    2.5K30

    【业界】自动机器学习的数据准备要素——分析行业重点

    在这篇文章将描述如何以一种机器学习的格式合并数据,这种格式准确地反映了业务流程和结果。将分享基本的指导方针和实用的技巧,从而帮你掌握自动机器学习模型数据准备的方法。 ?...如果是这样的话,你仍然可以使用现有的数据创建第一代机器学习模型,并随着时间的推移继续构建新的模型版本。 机器学习输入数据源 机器学习算法摄取单表、视图逗号分隔值(.csv)平面文件。...如果你的数据存储在多维数据仓库或在事务处理性的、标准化的数据库格式,你将需要从多个表中联接字段,以创建一个统一的、扁平的机器学习“视图”。 ?...机器学习“视图”包含结果度量,以及输入预测变量,这些变量应该在分析粒度级别上收集,这样你就可以做出可操作的决策。注意不要过度聚集,或是过于复杂的变量设计。...8.避免使用包含大量不同值的高基数。 9.不要使用重复的、冗余的其他高度相关的变量,这些变量携带相同的信息存在于相同的层次结构,以避免共线性问题。

    75540

    接口测试必备网络基础知识

    OSI7层模型与TCP/IP协议   OSI7层模型是由国际化标准化组织OSI定义。   由上至下:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。 ?...发送方:喂,听得到?   接收方:听得到,你听得到我吗?   发送方:听到了,我们可以说话了。 ?...TCP四次挥手   发送方:所有东西都说完了   接收方:已经全部听到了,但是等等我,还没处理完   接收方:好了,我处理了   发送方:好的,我们通信结束! ?...1.GET使用URLCookie传参,而POST将数据放在BODY;   2.GET的URL会有长度上的限制,则POST的数据则可以非常大;   3.POST比GET安全,因为数据在地址栏上不可见;...1.cookie存放着一个sessionID,请求时会发送这个ID;   2.session因为请求(request对象)而产生;   3.session是一个容器,可以存放会话过程的任何对象;

    64520

    java学习与应用(4.5)--Cookie、Session、JSP等

    Cookie 会话技术:Cookie(客户端),Session(服务端)。一次会话包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。...session用于存储一次会话的多次请求数据,存储在服务器端,存储任意类型任意大小。session相对安全。...MVC开发模式 MVC开发模式:java的web开发借鉴mvc开发模式,使得程序的设计更合理(弥补jsp的难以维护)(Model View Controller 模型 视图 控制器),服务器控制器调用模型...Mode使用JavaBean查询数据库,封装对象,Controller使用Servlet获取用户输入调用模型,数据返回给视图,View使用jsp展示数据(jsp少写入java代码)。...使用items容器对象,var临时变量,varStatus循环状态对象的index和count,获取容器对象的内容在var存在并取出。

    1.4K30

    唯一可行的 iOS 架构

    该方案的 Facade 模式表明,Domain Model 中有一个类可以通过调用所需对象来实现此接口,因此 Presentation 不需要了解有关模型具体对象的任何知识。...由于许多应用程序逻辑不属于模型视图,因此通常会在控制器处理。这导致了一个称为 Massive View Controller 的问题,在该问题中,视图控制器最终会做太多事情。...这个逻辑应该在 UIViewController ?如果存在很多复杂的表示逻辑怎么办?除了复杂性之外,还存在测试问题。测试 UIViewController 类并不容易。...MVC 模型表示整个模型。UIViewController 是 Presentation 的一部分。...除了根据业务逻辑设计模型外,我们还可以根据表示逻辑设计表示。MVC 不会强迫我们在 UIViewController 编写所有代码。如果需要,我们可以在 Presentation 层创建其他类。

    1.3K20

    ARKit 的配置-在您的AR项目的幕后

    在本节,我们将看看如何在后面配置提供的ARKit模板。我们将发现什么是世界跟踪和AR会话。同样,我们将学习如何将一些调试选项应用于场景的指导。...下载 要学习本教程,您需要Xcode 10更高版本,以及导入3D模型的最终Xcode项目。您可以下载本节的最终Xcode项目,以帮助您与自己的进度进行比较。...对象库 在检查员的左上方,有一个圆形图标,用于存储对象。如果您长按它,您可以访问对象库媒体库。对于Xcode 9,它位于屏幕的右下角。...会话使用其会话实例控制所有处理,并由场景视图自动创建。当您开始体验时,会话开始。 你能告诉另一个用于ARKit的流行技术的例子?让给你一个提示:Animoji。...因此,如果您有一个统一的白色黑色表,您将看不到太多任何特征点。这应该可以指示平面是否适合放置模型。所以,建议你添加垫子其他东西。 ?

    2.5K20

    可扩展伸缩架构的状态

    提到状态,我们总是伴随着可变的、并发、隔离和作用等词语,精确定义如下:状态是有关存储信息的技术名词,任何一个时间程序能够立即访问到。...请求作用会话作用?什么时候能够导入存储到持久介质上?下面看看状态在系统层面的几个生命周期: 1....2.会话周期:HTTP是一个无状态协议,注意时间是我们状态定义的基础,这就意味着HTTP并没有内建机制跟踪状态,而会话则是针对同一个客户端多个请求在服务器保有的状态,但是会话状态是无法扩展伸缩的,因为这导致有状态服务...数据库作为状态单一来源 我们认为尽可能避免状态是一个好设计,无状态服务虽然好,但不代表不会操作数据,不会和有状态数据打交道,无态服务可以将状态委托给数据存储使用Servlerless架构,这不代表没有服务器...日志 Kafka这样的消息系统能够实现日志的抽象,从而帮助同步状态的不同视图,以恶搞日志是一种带有顺序消息的集合,这个顺序对于分布式系统非常重要,Kafka提供了publish-subsribe发布-订阅模型

    89420

    《Spring实战》读书笔记-第6章 渲染Web视图

    /JavaScript转义 根据指定模型对象(在请求属性)是否有绑定错误,有条件地渲染内容 为当前页面设置默认的HTML转义值 根据给定的编码获取信息,然后要么进行渲染(默认行为),要么将其设置为页面作用、请求作用会话作用应用作用的变量(通过使用var和scope属性实现) 设置嵌入式的path,用于之中 根据给定的编码获取主题信息,然后要么进行渲染(默认行为),要么将其设置为页面作用、请求作用会话作用应用作用的变量(通过使用...Language SpEL)语法的某个表达式的值,然后要么进行渲染(默认行为),要么将其设置为页面作用、请求作用会话作用应用作用的变量(通过使用var和scope属性实现) 展现国际化信息...但是通过设置scope属性,我们可以让在应用作用内、会话作用请求作用内创建URL: <s:url href="/spitter/register" var="registerUrl

    97530

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    只有将这些变量重构到视图模型中去这一种方式?A:如果在同一个视图中,有多个相互关联的 @State 属性,将他们提取到一个结构或许是好的选择。...在的例子,不拖动时从 0 到 75,拖动时从 0 到 100。有什么办法可以阻止这种情况?A:你可以用 .chartYScale(domain: 0 ... 75) 锁定 Y 轴的刻度。...不过,在传统的 viewModel 意义上,不建议将视图( 结构本身 )作为视图模型。...在想:1、对于像这样的 UITabBarController 的 SwiftUI 视图,onAppear 到底应该在什么时候被调用?...在 ContentView 中使用了 enviromentObject 作为所有视图的封装器,在每个视图中,使用 @EnviromentObject 来访问这些数据,对于这种情况,这是最好的方法

    12.3K20

    整理+学习《骆昊-Java面试题全集()》

    JSP侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式,JSP适合充当视图(view)而Servlet适合充当控制器(controller)。 103、讲解JSP的四种作用。...2)设置表单隐藏:将和会话跟踪相关的字段添加到隐式表单域中,这些信息不会在浏览器显示但是提交表单时会提交给服务器。   ...这两种方式很难处理跨越多个页面的信息传递,因为如果每次都要修改URL或在页面添加隐式表单存储用户会话相关信息,事情将变得非常麻烦。...当用户通过浏览器和服务器建立一次会话后,会话ID就会随响应信息返回存储在基于窗口的cookie,那就意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个会话ID又会提交给服务器让服务器识别用户身份...Model 2是基于MVC(模型-视图-控制器,Model-View-Controller)架构模式的开发模型,实现了模型视图的彻底分离,利于团队开发和代码复用,如下图所示。 ?

    95560
    领券