请教定时保存全局静态数据的方法?

anantnt203120 2005-12-08 11:56:48
例如网站访问统计。
有人建议利用单件模式做Cache,添加一个Cache,设置上移除的时间并设置从缓存中移除对象时所调用的委托。
我想问:
1。保存在Cache和保存在Application里有什么区别?当服务器挡掉以后保存在Cache里的数据如何取出备份到数据库?
2。ASP.NET如何做到定时,因为统计访问的页面是个B/S结构的,如何做到定时保存到数据库中去,我想的是一个无限循环的函数,用TIMER设定执行的时间间隔。
还有好方案吗?


...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChengKing 2005-12-08
  • 打赏
  • 举报
回复
几种常用的变量:
Application是应用程序级变量,如果用到多个用户之间的通信的时候用
Session 是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销就可以
ViewState 页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失

用法:
如果有两个人: 甲和已在同学访问一个网站
1.
Sessin["UserID"] = "甲";// 表示只要甲不注销,不文伦跳到哪个页面,string str = Session["UserID"]都保存初始化时的数据,常用于在: Page_Load事件中,验证身份
page_Load()
{
if(Session["UserID"] == null || Session["UserID"] == "")
{
Response.Redirect("登录页面,重新登录");
}
else
{
呈现出页面
}
}
2.
Application["x"];
只要赋了值,如: Application["x"]; 则甲和已可以共享到此值,可以用于计数器,记录站点访问量
只要一个用户登录,则Application["x"] += 1;//加一个数,表示有个新用户刚刚登录
3.
this.ViewState["y"] = "abcde";
则表示在本页面中,this.ViewState["y"] 值可以作为全局变量使用,只要不退出本页面,
包括刷新页面,它都不会丢失
4.cookie
string a="a";
HttpCookie Cookie = new HttpCookie(a);
Cookie.Values.Add(a,"abc");
// 设置过期时间.
DateTime datCookie = DateTime.Now;
int intCookieTimeOut = 30;
TimeSpan tsCookie = new TimeSpan(intCookieTimeOut,0,0,0);
Cookie.Expires = datCookie.Add(tsCookie);
try
{
Response.Cookies.Remove(a);
}
catch{}
Response.Cookies.Add(Cookie);


设置缓存:
1.输出缓存:
I.页面设置: 将 <%@ OutputCache Duration="120" VaryByParam="none" %> 加在需要缓存页的开头
注释:在请求该页的后两分钟之内,输出内容不变
II.编程方式设置:
主要使用类System.Web.HttpCachePolicy类下的方法
(1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); //在此方法中必须指定到期时间,如本语 //句为两分钟
(2). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); //"可调到期",主要用于那些开始访问量大,但随后访问 //量平衡的情况
功能:第一句设置缓存到期时间,第二行打开 sliding expiration(可调到期).
2.数据缓存:
(1).DataView mySource; (2).给mySource赋值;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)Cache["myCache"]


Asp.Net中Cache操作类
http://blog.csdn.net/chengking/archive/2005/10/03/494545.aspx
NWC 2005-12-08
  • 打赏
  • 举报
回复
gz
建哥聊IT 2005-12-08
  • 打赏
  • 举报
回复
Cache是保存缓存里的数据
Application是服务器级全局变量

可以在Application会话结束时写入数据库.
iuhxq 2005-12-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/iuhxq/archive/2005/11/13/528719.aspx
anantnt203120 2005-12-08
  • 打赏
  • 举报
回复
关注ing……

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧