在Asp.net中,状态管理分为客户端状态管理和服务端状态管理,两者的优缺点分别如下:
1 客户端状态管理(hidden,QueryString,Cookie)主要特点是:
a 数据安全性比较差(用户可见),对于敏感信息需进行加密(Hidden可见)
b 数据长度有限制(QueryString,Cookie),Cookie不适合保存数据量较大的数据,如果需要,可在服务端设置一个标识,通过代码保存
c 不占用服务器端资源,由于没有与服务端进行耦合,
d 数据的扩展性比较好,如Cookie的读写都要经过Asp.net管线
2 服务器端状态管理(ViewState,Session,Application,profile)
1 数据对用户不可见,安全性好
2 数据保存在服务器端,需消耗服务器端资源,对于在线人数较多的网站不太适用
3 对于存放在内存在的数据,由于内存不能共享,限制了扩展性,扩展性差
会话状态: 会话状态是指针对某个用户来讲,在多次操作之前的状态,(在用户操作期间,有可能状态需要在页面之间持续使用,也有可能在服务器做过重启后,数据仍然有效),因此数据更新持久
状态的保存也不全是上述几种,有时也可以通过Javascript数组保存会话状态,保证用户交户操作采用Ajax方式处理,这样页面不会刷新,javascript变量中的状态会一直有效