最近做一个项目,一个表格的数据需要在会话过程中一直存在。因为接手的是别人做过的东西,按照原来的风格沿用了上面的静态变量来存储数据的方法:
public static List<Word> Words=wordrList;
后来测试时发现用Chrome和IE同时打开这个项目,数据会被覆盖掉,比方说Chrome传进来了数据A,然后IE传进来数据B。
此时Chrome什么都不做,只刷新一下,会发现原来的数据A变成了数据B,也就是说静态变量被新传来的数据给覆盖了。要是用静态变量来用户变量岂不是乱套了?
这时候应该用Session来取代静态变量:Session["WordList"]=wodrlist;
Session是服务端专门存放用户变量的一种机制,不同的用户使用的Session是相互独立,互不干扰的。而静态变量则是单独存放在共享内存中,也就是任何用户使用的静态变量其实是同一个,用户B改变了它的值,用户A之前赋的值就被覆盖了,看到的也是用户B赋的值。
所有说,一般的网站开发中,用户的个人数据都用cookie或者session这累变量来存放。而静态变量用于公共数据,比方说门户网站的访问量或者聊天网站的聊天记录等
时间: 2024-11-17 07:09:51