加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么viewstate序列化为表单中的隐藏字段而不保留在

发布时间:2020-12-16 06:25:17 所属栏目:asp.Net 来源:网络整理
导读:我是WebForms的新手,我正在尝试理解ViewState. AFAIK今天,它通过回发将UI修改为同一页面.但是为什么它将状态(=存储的修改)发送到客户端并且不将它保留在服务器上以节省CPU周期和带宽? 我理解完全错了吗? 解决方法 正如名称所暗示的那样,视图状态本质上与视
我是WebForms的新手,我正在尝试理解ViewState. AFAIK今天,它通过回发将UI修改为同一页面.但是为什么它将状态(=存储的修改)发送到客户端并且不将它保留在服务器上以节省CPU周期和带宽?

我理解完全错了吗?

解决方法

正如名称所暗示的那样,视图状态本质上与视图相关联,并且在保持该关系的同时尝试单独管理它并不容易实现.

您需要存储每页的视图状态,因此您仍然必须向客户端发送一个ID,以便能够在回发时获得正确的视图状态.另一个严重的问题是您向客户端发送了一个页面,但您不知道客户端何时或是否要将该页面回发到服务器,因此您需要至少存储视图状态,直到会话到期为止.

这可能导致服务器资源的浪费,因为所有这些视图状态都是为可能永远不会回发到服务器的用户存储的.如果你保持你的视野状态苗条,你会同意存放它的最佳位置是发送视图.

最后,如果您对客户端上的视图状态仍然不满意,可以覆盖页面的SavePageStateToPersistenceMediumLoadPageStateFromPersistenceMedium方法并将其保存到另一个介质中.我已经听过很多人抱怨客户端的状态,大多数时候我只是告诉他们继续在服务器上实现持久化到另一种媒体……但是,我相信没有人做过,可能是因为它很复杂你会得到一个不那么干净的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读