问题标签 [state]

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 投票
4 回答
592 浏览

c# - 静态类与实例化类

复制

可以是静态的 C# 方法应该是静态的吗?


如果这个问题看起来很简单,请原谅我 - 我正在查看一些看起来不错的源代码,但它提出了一些问题......

如果给定的类没有成员数据 - 即它不维护任何类型的状态,那么不将该类标记为具有静态方法的静态类有什么好处吗?

不将不保持状态的方法标记为静态有什么好处吗?

谢谢!

编辑:由于有人提出,我正在查看的代码是用 c# 编写的。

0 投票
6 回答
48030 浏览

ajax - 在 javascript 中,如何从另一个基于 cookied 的 sessionId 唯一地识别一个浏览器窗口

我的 Web 应用程序的用户可能打开了多个浏览器窗口并指向同一页面。我希望在回发中保留页面中某些事物的状态(通过 ajax 加载)。我既可以存储在 cookie 中,也可以存储在我的服务器上。无论哪种方式,我都想不出如何区分每个窗口。

例如,假设用户 Bob 有两个浏览器窗口打开到 ListOfSomething 页面。每个列表都有一个我需要保留的LoadedPageNumber属性。否则,用户在刷新时总是在第 1 页结束。Bob 可能已加载浏览器窗口 1 并将其指向第 5 页,然后加载浏览器窗口 2 并将其指向第 14 页。如果我仅根据会话 id 存储属性,则 Bob 将在窗口 1 中刷新第 14 页。

请注意,我的状态变量实际上比这个简单的示例要复杂得多,我无法持久化它们可能会导致大问题(我的应用程序中的弱点)。

我需要某种浏览器窗口 ID 或其他东西。当然需要是跨浏览器的解决方案(IE6+, Wekbit?+, FF2+)

有任何想法吗?

关于相关性的注意事项:请记住,这对于您将基于旧表单的页面与启用了 AJAX 的新项目混合的情况也很有用。有时您需要回发表单并且您不想丢失一些客户端状态值。

0 投票
3 回答
3697 浏览

cocoa - 如何将按钮的启用绑定绑定到 NSArrayController 是否有选择?

我想将 NSButton 的启用状态绑定到 NSArrayController 是否有任何选定的项目。

我该怎么做呢?

0 投票
1 回答
170 浏览

ruby - 使用 Rake 任务时保持持久性

我正在以 rake 任务的形式运行一些基本的持续集成脚本,使用 cron 来自动化它们的运行。

但是,我希望能够在任务之间保持某种形式的状态。我考虑过将信息写入文件并将其读回。

有没有更“红宝石”的方式来做到这一点?

0 投票
20 回答
55179 浏览

functional-programming - 如果没有可变状态,你怎么能做任何有用的事情?

我最近一直在阅读很多关于函数式编程的东西,我可以理解其中的大部分内容,但我无法理解的一件事是无状态编码。在我看来,通过移除可变状态来简化编程就像通过移除仪表板来“简化”汽车:成品可能更简单,但祝它与最终用户交互好运。

几乎我能想到的每个用户应用程序都将状态作为核心概念。如果您编写文档(或 SO 帖子),则状态会随着每个新输入而改变。或者如果你玩电子游戏,有大量的状态变量,从所有角色的位置开始,他们往往会不断地四处走动。如果不跟踪值的变化,你怎么可能做任何有用的事情呢?

每次我找到讨论这个问题的东西时,它都是用真正的技术功能语言编写的,假设我没有沉重的 FP 背景。有没有人知道一种方法可以向对命令式编码有良好、扎实理解但在功能方面完全n00b的人解释这一点?

编辑:到目前为止,一堆回复似乎试图让我相信不可变值的优势。我明白那部分。这很有意义。我不明白的是如何在没有可变变量的情况下跟踪必须更改并不断更改的值。

0 投票
1 回答
1999 浏览

c# - HttpWebRequest 和 HttpWebResponse :维护连续查询的登录请求状态

我有几个 HttpWebRequests 和 HttpWebResponses 链接在一起,也使用 CookieContainer。

该代码模拟用户浏览三个不同的“我同意”页面,这些页面设置了 cookie 信息,在第四个页面使用用户名和密码登录,在第五个页面执行 POST(搜索),将响应作为字符串返回。

有没有办法可以将 HttpWebRequest 对象维护为“已登录”,以避免每次用户执行搜索时都执行这些步骤?

我可以将它设置为静态,如果它为空或缺少 cookie 信息,它可以运行所有步骤,否则只做用户需要的帖子?这有什么好的模式?

0 投票
25 回答
235260 浏览

algorithm - 确定井字游戏结束的算法

我用 Java 编写了一个井字游戏,我目前确定游戏结束的方法考虑了以下可能的游戏结束情况:

  1. 棋盘已满,尚未宣布获胜者:游戏为平局。
  2. 克罗斯赢了。
  3. 圈子赢了。

不幸的是,要这样做,它会从表中读取一组预定义的这些场景。考虑到棋盘上只有 9 个空格,这并不一定是坏事,因此桌子有点小,但是是否有更好的算法方法来确定游戏是否结束?确定某人是否获胜是问题的关键,因为检查 9 个空格是否已满是微不足道的。

表方法可能是解决方案,但如果不是,那是什么?另外,如果电路板没有尺寸n=9怎么办?如果它是一个更大的棋盘,比如说n=16,n=25等等,导致连续放置的获胜项目的数量是x=4,x=5等等?一个通用的算法供所有人使用n = { 9, 16, 25, 36 ... }

0 投票
1 回答
1267 浏览

collections - TransactionScope 和回滚对象状态

我正在寻找设计问题的解决方案。这将需要一些解释。我会发布代码,但这会使它变得更长。

我有一个自定义的通用集合,用于根据需要保存业务对象。为了便于参考,调用业务对象BO和通用集合GC。在 GC 内部,我有一个私有集合,其中包含已标记为删除的那些业务对象。将此私人收藏称为PDC

我可以在任何时候拥有任意数量的 GC,每个都有自己的 PDC,以及不在任何集合中的其他 BO。

当我保存更改时,我会遍历所有 BO 和 GC,并让每个人都保存他们的更改。这发生在 TransactionScope 中,因此如果无法正确保存,我会回滚数据库更改。

当 GC 保存时,我的 PDC 状态存在问题。GC 首先保存所有更新的 BO,然后删除 PDC 中与 BO 关联的记录,然后清除所有 BO 的 PDC。我这样做是为了让 GC 的状态正确地反映数据库的新状态。

现在假设一个或多个 GC 成功保存后 BO 或 GC 保存失败。TransactionScope 执行回滚。从数据库中删除的记录已恢复,但部分/全部 PDC 已被清除,状态信息丢失

所以这是我的困惑:如何在提交发生之前保留 PDC 信息,然后保证清除适当的集合?

TransactionScope 没有我可以捕捉到的事件来让我知道何时提交了更改。任何给定事务都可能影响许多 BO 和 GC,因此我不能将事务限制为一次处理一个 GC。

有什么建议么?

0 投票
6 回答
517 浏览

java - 如何回退应用程序状态?

我正在开发一个 Java 桌面飞行模拟。我需要记录驾驶舱内发生的所有飞行员动作,例如油门控制、转向、武器部署等,以便稍后查看这些事件(或实时流式传输)。

我想在事件的回放上添加一个视觉回放功能,这样当我及时向前和向后移动时,我可以直观地看到驾驶舱。只要我按时间顺序回放事件,回放就没有问题,但是倒带有点棘手。

您将如何实现倒带功能?

0 投票
1 回答
142 浏览

flash - 如何在 Flash CS3 中的按钮中创建新状态?

我正在尝试为按钮创建一个新状态,例如当我将鼠标指针移出命中区域时,它会触发一个小动画剪辑。我该怎么做?我可能需要这个状态的特定名称,比如 Hit 或 Over,对吗?