1、HttpContext.Current.Item是对访问的所有用户共享吗?还是只针对当前访问的用户?
2、HttpContext.Current.Cache是对访问的所有用户共享吗?还是只针对当前访问的用户?
3、如果HttpContext.Current.Cache是对所有用户共享的话,那么和Application有什么区别呢?
谢谢!
2、HttpContext.Current.Cache是对访问的所有用户共享吗?还是只针对当前访问的用户?
3、如果HttpContext.Current.Cache是对所有用户共享的话,那么和Application有什么区别呢?
谢谢!
解决方案 »
- jquery的弹出层插件哪种比较好,大家一般用哪一种?
- 现在做.net开发,想转测试,难不难的。
- 急求.NET 动态树形菜单问题!
- System.NotSupportedException: 不支持给定路径的格式。
- js脚本问题 路过的进来说说 谢谢,,急,,,,
- 论坛发贴系统的有关问题(急~~~~~~~~~~)
- 请教关于treeview的问题
- 200分。高分。用JS控制treeview里的checkbox选中父接点,子结点也选种,取消父接点,子结点也取消的问题,解决了我再开帖放分
- DATALIST控件里根据数据库某个字段的值来控制前台某列显示的颜色?
- 关于web.config的一个弱问题... 急!!
- VS里的文字怎么在DREAMWEAVER里显示的是乱码啊?
- 求助:asp.net里如何将多媒体数据保存到数据库中,以及如何取出来播放
2、是所有用户;
3、Cache比Application变量更灵活,比如:Cache有优先级,如果内存紧张,优先级低和很少用的Cache将被从内存中转移到硬盘上保存;可以定义Cache的过期时间;可以定义依赖项来确保Cache中数据的有效性,等等。
我在《C# WEB编程入门经典》中看到介绍,说对于页面的各个用户控件之间的数据交流,推荐采用HttpContext.Current.Item(书中称为暂存)。
但是如果按照你所说的任何请求的用户都可以共享的话,那岂不是会发生冲突?比如假设我在HttpContext.Current.Item保存了一个数据,即当前的用户名,即:
HttpContext.Current.Item["username"] = "abc";
这样的话,如果HttpContext.Current.Item是任何请求的用户都可以共享的话,数据就会发生冲突,那么就要出问题哟。
也就是说这个属性是针对一次请求而言的,每个用户每次发出的请求都会建立一个HttpContext的实例,所以不存在什么用户共享的问题。
一般,Item只是用于控件开发的时候存储一些共有的值,在下一次请求到来的时候item中的值又会重新建立的.
那么HttpContext.Current.Cache呢
也就是HttpContext类提供的一个属性让你取道当前的Context类的实例。那么那个Catch属性就好找了,也就是HttpContext.Cache的属性,看看MSDN吧,里面还有sample
对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。有关此类实例的信息通过 HttpContext 对象的 Cache 属性或 Page 对象的 Cache 属性来提供。这样看来,应该是所有用户共享了,呵呵!