部分翻译
1.Application State
在asp的时代就出现了,在整个程序域中存储数据。不能垮程序域访问。
为了避免死锁,你应该在存储数据的时候进行锁定
//
代码示例
Application.Lock();
Application[
"
Key
"
]
=
"
object
"
;
Application.UnLock;
2.Cache Object
和Appliction很像,但是优点很明显,简化了很多,因为有线程来控制所以就没有必要去注意死锁这么麻烦的事情。
缓存还有优先级,你可以指定某个缓存项在多长时间后移出也可以指定在什么时间移出。也可以指定对其他因素的依赖。至今看见缓存最经典的应用就是在petshop中。
Cache.Insert(
"
Key
"
,
"
object
"
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
null
, System.Web.Caching.Cache.NoAbsoluteExpiration,
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
new
TimeSpan(
0
,
30
,
0
));
Session state
在Asp时代就存在了,可以用来存储用户特定的信息,Session只能对当前的系统当前的用户服务,别的同时在线用户不会享用你的session value。
Session[
"
UserName
"
]
=
"
Eveong
"
//
Store
string
myName
=
Session[
"
UserName
"
].ToString()
Context
是个很帅,很难见的东西,至今没有发现人用,因为这家伙的生命周期很短,用毫秒来计算的,仅仅生活在服务器端。唯一的优点就是高效,可以自动的从内存中清除。
Context.Items[
"
UserName
"
]
=
TextBox1.Text;
//
Page1
Server.Transfer(
"
Page2.aspx
"
);
//
Page1
string
s
=
Context.Items[
"
UserName
"
].ToString();
//
Page2
在这里只能只能用Server.Transfer ,不能用Response.Redirect 因为 redirect是客户的一个完整的post和get
Context在到达第二个页面前已经被除名了。
ViewState
这个最常用的, The ViewState object is useful for storing objects between postbacks to the same page(解释真是到位) 没有runat=''Server''的控件都有ViewState。
最可耻的事情就是ViewState不会存储在内存中,而是保存在生成的页面html中。显示在页面时候是编码每次页面回发在服务器都要进行解码。虽然Viewstate生成html都是进行加密的。碰见那些有能力的又感兴趣的人就会进行解码。所以敏感的信息就不要存贮在viewstate中了。
QueryString
最早学会的在页面中传值得方法 xiaogou.aspx?age=19&sex=boy 靠&来分隔了,=后面就是params的value
Cookies
将值保存在客户端了,也可以指定生命周期有多长,asp.net中form验证就是基于Cookies动用的是客户端的东西所以Cookies受到的争议。
Cookies由于存在用户的硬盘中,所以可以被更改,所以你获得的信息不总是可信的。
Response.Cookies[
"
myval
"
].Value
=
TextBox1.Text;
//
Store
Response.Cookies[
"
myval
"
].Value;
//
Retrieve
Post
Submit按钮就是使用这个东西,有了asp:button 我从来就没有用过这个优秀的html控件。
贴个代码大家看吧
string
s
=
Request.Form[
"
TextBox1
"
].ToString();
/
原文地址:http://steveorr.net/articles/PassData.aspx
1.Application State
在asp的时代就出现了,在整个程序域中存储数据。不能垮程序域访问。
为了避免死锁,你应该在存储数据的时候进行锁定
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
和Appliction很像,但是优点很明显,简化了很多,因为有线程来控制所以就没有必要去注意死锁这么麻烦的事情。
缓存还有优先级,你可以指定某个缓存项在多长时间后移出也可以指定在什么时间移出。也可以指定对其他因素的依赖。至今看见缓存最经典的应用就是在petshop中。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Session state
在Asp时代就存在了,可以用来存储用户特定的信息,Session只能对当前的系统当前的用户服务,别的同时在线用户不会享用你的session value。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Context
是个很帅,很难见的东西,至今没有发现人用,因为这家伙的生命周期很短,用毫秒来计算的,仅仅生活在服务器端。唯一的优点就是高效,可以自动的从内存中清除。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Context在到达第二个页面前已经被除名了。
ViewState
这个最常用的, The ViewState object is useful for storing objects between postbacks to the same page(解释真是到位) 没有runat=''Server''的控件都有ViewState。
最可耻的事情就是ViewState不会存储在内存中,而是保存在生成的页面html中。显示在页面时候是编码每次页面回发在服务器都要进行解码。虽然Viewstate生成html都是进行加密的。碰见那些有能力的又感兴趣的人就会进行解码。所以敏感的信息就不要存贮在viewstate中了。
QueryString
最早学会的在页面中传值得方法 xiaogou.aspx?age=19&sex=boy 靠&来分隔了,=后面就是params的value
Cookies
将值保存在客户端了,也可以指定生命周期有多长,asp.net中form验证就是基于Cookies动用的是客户端的东西所以Cookies受到的争议。
Cookies由于存在用户的硬盘中,所以可以被更改,所以你获得的信息不总是可信的。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Post
Submit按钮就是使用这个东西,有了asp:button 我从来就没有用过这个优秀的html控件。
贴个代码大家看吧
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
原文地址:http://steveorr.net/articles/PassData.aspx