0

我对此感到困惑一段时间,所以我想我会在这里问。我注意到很多控件可以在winforms中存储对象,但不一定在web表单中。例如,winforms 中的checkBoxList 可以保存对象,而Web 表单中的checkBoxList 则不能。谁能告诉我为什么会这样,而且,如果有任何指向列表的链接,我可以在其中看到 winforms 和 webforms 中存储或不存储对象的所有控件。

谢谢。

4

1 回答 1

2

区别在于状态。WinForms 使用statefull设计,WebForms 使用stateless设计或有时粘滞会话。我没有清单,但这些是完全不同的技术,我不想混合使用它们。

有状态的

对象状态在程序生命周期内保持不变。除非您显式或隐式请求对象终止,否则它将保留在内存中。

无状态

这用于请求-响应架构。客户端发出一个独立的请求,服务器处理它并返回一个独立的响应。服务器上的数据被清理。这就是为什么 Web 应用程序可以支持许多并发用户而不会因内存不足异常而死亡的原因。虽然保存了一些次要状态。在 Web 应用程序中,它通常以隐藏字段或 cookie 的形式存储在请求和响应中。

粘性会话

这用于网络场和负载平衡环境,因此来自同一用户的请求通常会传送到同一台服务器。这很好,因为服务器可能会缓存一些关于用户请求的数据并更快地形成响应。

于 2013-06-10T17:02:50.033 回答