在ASP.NET中用于跨页面存储与传递数据的类有标题中所示的几种:
Session,ViewState,都属于是页面级的变量,就是说每个客户端都对应着一个不同的实例,互相之间的操作不会有影响.ViewState又是只对某个页面起作用,和下面的static变量很象,并且只有能够序列化的对象才能放入ViewState中,这点在自己写类的时候要注意!
Application,Cache,static,都是属于应用程序级的变量,就是说在整个WEB站点不管有多少用户连接,都共享这一个实例.无论谁的操作,都可能导致别的用户取到错误的结果.
其中static又与另两个有所不同,Application和Cache是不管你在哪个页面,都可以访问,而static只在声明他的页面起作用!如果你声明在实现了HttpHandler的类中,而所有的页面又从你自己写的这个类中继承,那就和Application几乎没什么区别了!
因为,Cache只适合存放应用程序级的配置信息等!
static是静态变量,是全局的,所有用户共享同一个变量,有点类似于Applicaion["xxx“],
Session是会话,简单的说就是每个用户一个Session,任意2个用户的Session都不相同,也不冲突
Session可以理解为每个人的家
static可以理解为公园里的沙地这种公共的东西,大家都可以用,都可以用沙画画,也可以改别人画的沙画