问题标签 [state-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
180 浏览

asp.net - 使用数据模块 --- pass-Store-use a connection inside a可重用的数据模块

我想将站点的数据模块分成一个程序集(单个 dll 文件),在处理 Web 应用程序时获取存储和传递站点的ConnectionString的最佳方法是什么。在数据程序集中,我创建了一个名为 ConnectionManager 的静态类。它有一个名为DatabaseConnectionName的属性 ,我想传递并存储位于 Web.Config 文件中的连接名称。在这个策略中,我决定在网站的加载时间在 Global.asax 文件中获取名称并建立连接,并在我之前提到的属性 (DatabaseConnectionName) 中进行连接。但是,这只是我使用的策略,我不知道做这项工作的常见模式是什么。

部分代码: ======================================= [ -------- ---- Global.asax ------------ ]

[ ------------ ConnectionManager Class ------------ ] 这是在数据模块中,除了站点

==结束================================================ =============

--- 问题是: ---

  1. 在哪里存储连接?(这是 ConnectionManager 类中的一个属性,theCompany.Data.ConnectionManager.DatabaseConnectionName)

  2. 什么时候建立这种联系?(这里是 Global.asax 应用程序加载时间)

  3. 哪种方法最适合存储此类信息:SessionState 或 ViewState 或简单属性

  4. 这个策略好不好?你知道任何更好的方法或常见的模式吗?

感谢您提供任何信息 - MHM -

0 投票
8 回答
68289 浏览

asp.net - 缓存 VS 会话 VS cookie?

Cache VS Session VS Cookies 有哪些注意事项?

例如:
我经常使用 Session 变量,当用户开始订购产品然后去吃午饭并在几个小时后回来继续预订时,有时会在预订应用程序中出现问题。我将预订存储在会话中,直到用户确认或中止预订,因此当用户只需单击浏览器中的 X 并且永远不会返回时,我不需要与数据库对话并处理数据库中的中途预订。

我应该为此使用缓存或cookies还是某种组合?

(此外,当应用程序出现错误时,会话对象会自行重置,因此我会遇到更多问题)

我主要在做桌面编程,觉得我在这里缺乏很多知识,所以任何可以扩展在哪里使用缓存、会话、Cookie(或数据库)的人将不胜感激

编辑:从答案看来,我想要的是 DB 和 cookie 的组合。

  1. 我必须将预订存储在连接到会话 ID 的数据库中
  2. 将会话 ID 存储在 cookie 中(加密)。
  3. 每个页面都加载检查 cookie 并从数据库中获取预订
  4. 我有一个每周运行一次的清理程序,用于清理未完成的预订。

我不能将预订存储为 cookie,因为用户可以更改价格和其他敏感数据,我必须验证所有内容(不能信任数据)。

我做对了吗?

并感谢你们所有人的精彩解释!

0 投票
4 回答
3754 浏览

asp.net - ASP.NET MVC - 有没有办法模拟 ViewState?

我有以下情况... 在某个View中,用户必须选择开始时间、结束时间和工作日。但是,我无法将这些信息保存到数据库,因为我需要保存整个页面并且我需要主表的主键,但这不是重点。

所以,虽然我没有将这些数据保存到数据库中,但我正在保存到会话中。我被告知要保存到 cookie,但似乎 cookie 有大小限制。所以,我正在保存到一个会话。

Buuuut,我还被告知我可以将这些信息(小时和工作日)保存到用户页面,模拟 ASP.NET ViewState...

有谁知道如何做到这一点??有谁知道如何在不使用 cookie 或 Session 的情况下临时保存这些数据?

谢谢!!

0 投票
4 回答
116 浏览

session-management - 状态管理问题

我有三个由不同域名指向的网站。

问题是:

如果用户在一个域登录,则不会反映在其他两个域中,注销也是如此。

如何维护两个不同域的会话状态?

0 投票
2 回答
3672 浏览

android - 安卓。保存对话框的实例状态?

我想知道实现这一点的正确方法是什么?有人可以建议我的解决方案是否正确吗?

所以:

  1. 活动已创建
  2. 用户单击按钮并启动对话框(对话框,不是对话框样式的活动)
  3. 用户打开键盘
  4. 我们有 onSaveInstanceState 调用我们保存我们的对话框已打开和所有相应的对话框输入
  5. 我们有 onRestoreInstanceState ,在这里我们检查是否显示了对话框,使用相应的输入重新创建对话框。

这是正确的方法吗?或有某事。这是由 Android 完成的,我正在做一些多余的操作。

谢谢

0 投票
2 回答
263 浏览

user-interface - 任何数学方法来管理复杂对象的状态?

我通常为 GUI 使用 ASP.net Web 表单,这可能是最“有状态”的技术之一。但它适用于任何具有状态的技术。有时表单很复杂,有超过 30 个元素,每个元素有超过 3 个状态。设计这种形式的直观方式通常适用于 90%。其他 10% 通常会找到测试人员或最终用户:)。

我看到的问题是我们应该在同一个对象上想象很多场景,这比独立操作的结果要困难得多。

从函数式编程课程中,我知道最好的方法是不使用状态管理,而是使用纯函数和按值传递的变量以及所有这些非常形式化的东西。有时,我们无法避免。

您是否使用任何数学形式和方法来管理复杂对象的状态?不像 Haskell 中的 monad,但它可以用于更传统的业务应用程序和语言——Java、C#、C++。

这可能不是图灵完备的形式主义,但 99% 也会很棒:)。

对不起,如果这只是另一个风滚草问题:)

0 投票
2 回答
45 浏览

database - Does anyone else think instance variables are problematic in database-backed applications?

It occurs to me that state control in languages like C# is not well supported.

By this, I mean, it is left upto the programmer to manage the state of in-memory objects. A common use-case is that instance variables in the domain-model are copies of information residing in persistent storage (i.e. the database). Clearly this violates the single point of authority principle, and "synchronisation" has to be managed by the developer.

I envisage a system where instead of instance variables, we have simple public access/mutator methods marked with attributes that link them to the database, and where reads and writes are mediated by a framework that decides whether to hit the database. Does such a system exist?

Am I completely missing the point, or is there some truth to this idea?

0 投票
7 回答
3168 浏览

javascript - Javascript 中的会话值

如何在 javascript 中读取和写入会话值

0 投票
1 回答
477 浏览

asp.net-mvc - MVC中javascript内容的状态管理

我正在使用 asp.net MVC2。我在 javascript 内容的状态管理中遇到问题。我有一个图像映射,在其中单击图像的各个部分时,我将显示同一页面(使用参数重定向),其中包含一些参数,例如: Secure/BodyWork?view=7 并且基于参数视图中的值,我正在显示各种内容在页面上。在那个内容中,我有一些复选框,我选中它们并将其显示在 div 的左侧(选中一个)。问题是当我单击图像的另一部分(图像地图)时,它会将我重定向到具有不同“视图=?”的同一页面 值,但我失去了当前 div 的状态(其中包含上一页选中复选框的名称)。

我的继承线是这样的:

控制器包含:

我已经尝试使用隐藏字段,因此我在其中放置了当前页面复选框的名称,但是当我单击图像地图时,这些名称当然会因为页面重定向到当前页面而失去价值。

我也尝试过使用 ajax.beginform 但它也不起作用,因为我们在单击图像映射时将页面重定向到具有不同参数的同一页面,例如:view=3/view = 4。

请建议我应该改变什么以及如何去做。

谢谢

目标 div 中的代码:

0 投票
1 回答
2059 浏览

extjs - ExtJs 3.3 GridPanel 不再使用缓冲 Http 提供程序恢复列设置

我更新到 Ext 3.3,突然我的 GridPanel 的列“宽度”和“隐藏”设置不再恢复,它们保持默认设置。我使用最新版本的Buffering Http Provider。我真的不知道故障的原因,是因为这个 State Provider 实现还是因为 Ext.

“保存”设置似乎正常工作,将调用处理程序并将设置正确存储到数据库中。这些设置也再次从数据库中正确读取,并且我到客户端的输出包含正确的设置。

我的(部分服务器生成的)代码最近没有改变,它看起来像这样:

我错过的状态机制有什么重要的变化吗?文档说我在为组件设置id时不需要指定stateId。但是我看到Ext 文档中现在有一个以前不存在的Column对象。也许这些现在需要一个ID

任何提示和帮助将不胜感激。