stevenhwang

收集C#、SQL、JavaScript、HTML、CSS点点滴滴

导航

application/session/cookie/viewstat/cache

Posted on 2007-03-19 15:33  stevenhwang  阅读(202)  评论(0)    收藏  举报

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;
}

============================================================================
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();
}

 

 

 

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();
}

 

 


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();
}


  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();
  }