application:(P479)
程序全局变量对象,是公共的,对每个用户每个页面都有效,可以用来做聊天室
session:
用户全局变量,是私有,对于该用户的所有操作过程都有效,每个客户端都存在一个不同的session,生存期正常是20分钟,也可以自己设定
cookie:
客户端信息存放对象,可以把用户的信息保存在用户的本地,除非你让cookie过期,否则会一直存在
function
writeCookie(name, value, hours)
... {
var expire = "";
if(hours != null)
...{
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = "; expires=" + expire.toGMTString();
}
document.cookie = name + "=" + escape(value) + expire;
}
function readCookie(name)
... {
var cookieValue = "";
var search = name + "=";
if(document.cookie.length > 0)
...{
offset = document.cookie.indexOf(search);
if (offset != -1)
...{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
cookieValue = unescape(document.cookie.substring(offset, end))
}
}
return cookieValue;
}
... {
var expire = "";
if(hours != null)
...{
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = "; expires=" + expire.toGMTString();
}
document.cookie = name + "=" + escape(value) + expire;
}
function readCookie(name)
... {
var cookieValue = "";
var search = name + "=";
if(document.cookie.length > 0)
...{
offset = document.cookie.indexOf(search);
if (offset != -1)
...{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
cookieValue = unescape(document.cookie.substring(offset, end))
}
}
return cookieValue;
}
viewstate
类似于asp中的hidden控件,用来记录页面中的控件的状态的,主要在页面间信息传递时用
ViewState[
"
CurrentTab
"
]
=
"
0
"
cache
是缓存,用来记录已经执行过的一些数据,比如读取数据库,目的是加速显示,减少服务器的负担,过期时间也是可以自己设定的,和Application一样,用于保存全局变量,但CACHE在使用上更具有灵活性:
1。自有的按时更新缓存的机制
有的项目需要定时获取最新数据的需求,如天气预报,可能间隔10分钟 就要读取一次需求,那这可以利用CACHE本身的方法来实现。
//
监视某个时间
public void CreateDependency(Object sender, EventArgs e) ... {
// Create a DateTime object.
DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
CacheDependency dependency = new CacheDependency(null, dt);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
public void CreateDependency(Object sender, EventArgs e) ... {
// Create a DateTime object.
DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
CacheDependency dependency = new CacheDependency(null, dt);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
2.当缓存的源修改时,可以重新更新缓存。这个缓存源可以是变量,也可以是文件,或者目录。
//监视某个变量
public
void
CreateDependency(Object sender, EventArgs e)
...
{
// Create a DateTime object.
//DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
// Make key2 dependent on key1.
String[] dependencyKey = new String[1];
dependencyKey[0] = "key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey, null);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
// Create a DateTime object.
//DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
// Make key2 dependent on key1.
String[] dependencyKey = new String[1];
dependencyKey[0] = "key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey, null);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
3.同时以多种搭配来自动更新缓存,如同时监视某个文件,并且在指定间隔的时间内自动更新。
//
监视某个时间和变量
public void CreateDependency(Object sender, EventArgs e) ... {
// Create a DateTime object.
DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
// Make key2 dependent on key1.
String[] dependencyKey = new String[1];
dependencyKey[0] = "key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey, dt);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
public void CreateDependency(Object sender, EventArgs e) ... {
// Create a DateTime object.
DateTime dt = DateTime.Now.AddSeconds(10);
// Create a cache entry.
Cache["key1"] = "Value 1";
// Make key2 dependent on key1.
String[] dependencyKey = new String[1];
dependencyKey[0] = "key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey, dt);
Cache.Insert("key2", "Value 2", dependency);
DisplayValues();
}
global
.asax:
void Application_Start( object sender, EventArgs e)
... {
// 在应用程序启动时运行的代码
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["IVCSDBConnectionString"].ConnectionString;
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(strConn);
string strComm = "select ConfID,ConfName,StartTime from TIVCSBookConfer";
System.Data.SqlClient.SqlCommand sqlCommm = new System.Data.SqlClient.SqlCommand(strComm, sqlConn);
System.Data.SqlClient.SqlDataAdapter sqlDa = new System.Data.SqlClient.SqlDataAdapter(sqlCommm);
System.Data.DataSet ds = new System.Data.DataSet();
sqlDa.Fill(ds);
DateTime dt = DateTime.Now.AddSeconds(10);
CacheDependency dependency = new CacheDependency(null, dt);
Context.Cache.Insert("dataset", ds);
}
页面引用Cache:
void Page_Load(Object sender, EventArgs e)
... {
gvConf.DataSource = Context.Cache.Get("dataset");
gvConf.DataBind();
}
void Application_Start( object sender, EventArgs e)
... {
// 在应用程序启动时运行的代码
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["IVCSDBConnectionString"].ConnectionString;
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(strConn);
string strComm = "select ConfID,ConfName,StartTime from TIVCSBookConfer";
System.Data.SqlClient.SqlCommand sqlCommm = new System.Data.SqlClient.SqlCommand(strComm, sqlConn);
System.Data.SqlClient.SqlDataAdapter sqlDa = new System.Data.SqlClient.SqlDataAdapter(sqlCommm);
System.Data.DataSet ds = new System.Data.DataSet();
sqlDa.Fill(ds);
DateTime dt = DateTime.Now.AddSeconds(10);
CacheDependency dependency = new CacheDependency(null, dt);
Context.Cache.Insert("dataset", ds);
}
页面引用Cache:
void Page_Load(Object sender, EventArgs e)
... {
gvConf.DataSource = Context.Cache.Get("dataset");
gvConf.DataBind();
}