【发布时间】:2012-08-15 09:11:51
【问题描述】:
我对 WebForms 很陌生,我正在尝试了解 ViewState。今天 AFAIK,它通过回发到同一页面来保持对 UI 的修改。但是为什么它将状态(= 存储的修改)发送到客户端并且不将其保留在服务器上节省 CPU 周期和带宽?
我的理解完全错误吗?
【问题讨论】:
-
服务器应该如何跟踪视图状态,因为 HTTP 是无状态的?
-
@Oded:好点,但我认为回发调用已经包含足够的信息。它必须告诉服务器,用户接下来想做什么。当前状态可以保存在服务器上。
-
是什么让回发调用包含所有信息?它如何表明价值观发生了变化?
-
您需要记住 HTTP 是无状态的。您还需要牢记网络农场。不能将状态保存在“ 服务器上”,因为“服务器”很容易成为“许多服务器”。
-
还请记住,默认情况下,ViewState 存储在隐藏的表单字段中。无论表单数据去哪里,ViewState 都可以去,无论它是否回发到同一页面。
标签: asp.net webforms viewstate