- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于.NET内置对象在线人数统计
基于.NET内置对象在线人数统计
摘 要: ASP.NET具有七大内置对象, 用ASP. NET编写虚拟社区、网上购物等B/S程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对象是提高程序质量的关键。
关键词: .NET 内置对象 在线人数统计
一、关键对象分析
我们可以把Application看成一个用于存储全局变量的容器,实际它只是一个对象,而ASP.NET应用程序里面的变量,也就是容器里面的内容。ASP.NET应用程序是单个Web服务器上某一个虚拟目录及其子目录范围内所有文件、页、处理程序、模块、代码的总和。可以在整个应用程序范围之内存储一些信息,我们可以用变量来存储。但需要注意的是,变量的整个生命周期受限制于网页,即每一次ASP.NET文件被执行完毕(Web服务器端发送代码到客户端后),变量的内容便被释放。很多时候,我们又需要保留这个内容,比如论坛系统,每次刷新后,页面的内容仍然要存在,这就需要Application来存储。利用Application对象存储的变量及对象在整个应用程序内执行的所有ASP.NET页面都是可用的。Application中存储的是全局变量,这些变量占用了系统较多的内存资源,在这个变量没有被替代之前,所占用的资源是不会被释放的。
Session对象和Application有很大不同。Application对象存储信息是整个应用程序所共享的全局信息,每一个客户都能够访问到的相同信息,针对整个应用程序,并且整个程序里的每一个用户。Session对象的作用是在服务器端存储特定局部的的信息,是针对特定的一个用户,Session中的信息也叫做会话状态。我们用一个例子来说明Session的使用。比如设计一个论坛。我们进入论坛,提交用户名和密码后,发帖子、留言等都不需要再用用户名和密码了,这是因为已经保留了注册信息。我们登陆成功后,该系统已经把用户名和密码等存放进了Session对象,然后把信息返回到服务器,当转到下一个页面时,再从服务器取出信息来使用。我们留言或者发帖子的时候,就从 Web服务器的Session中取出用户名和密码来判断我们是否有权利这么做。
ASP.NET的Application和Session对象,体现了其他ASP.NET内置对象所没有的特征,即事件。每一个用户访问服务器时都会触发一个OnStart事件,每个访客的会话结束时都会触发一个OnEnd事件。OnStart和OnEnd这两个事件一般应用于虚拟社区中统计在线人数、修改用户的在线离线状态等。要具体定义这两个事件,需要将代码写在Global.asa文件,并将该文件放在站点的根目录下(缺省是\Inetpub\wwwroot\)。另外,Application和Session对象规定了在OnEnd事件里除了Application对象外其他ASP内置对象(Response、Request、Server、Session……)一概不能使用。以下举一个虚拟社区统计在线人数的例子来说明如何使用这两个事件。
二、具体实现方法
在本例中,用application[online]变量记录已经登录社区的在线人数,因为一旦有用户访问服务器而不论用户是否登录,都会产生OnStart事件,所以不能在OnStart事件里使Application[online]加一。因为不论是否是登录用户的会话结束都会产生OnEnd事件(假如有访客访问了服务器但并不登录社区,他的会话结束后也会产生OnEnd事件),所以在Session_OnEnd事件里用了if语句来判断是否为已登录用户的OnEnd事件,如果是才将在线人数减一。
1.Global文件部分代码
void Application_Start(object sender, EventArgse)
{
Application[total] = 0;//总人数
Application[online] = 0;//在线人数
//在应用程序启动时运行的代码
}
void Session_Start(object sender, EventArgse)
{
Session.Timeout = 1;
Application.Lock();//防止并发
Application[total]=(int)Application[total]+1;
Application[online]=(int)Application[online]+1;
Application.UnLock();
}
void Session_End(o
您可能关注的文档
- 地理教学中有关思维品质培养.doc
- 地理教学中提问设置.doc
- 地理教学中怎样培养学生记忆能力.doc
- 地理教学中爱国主义素材挖掘.doc
- 地理条件与菜系形成.doc
- 地理教学中误区与策略.doc
- 地理教学语言运用策略.doc
- 地理教学中研究性学习运用.doc
- 地理新教材教学中探究与学习.doc
- 地理环境与政治关系.doc
- 5月信用策略:信用行情由短及长展开-250514-国盛证券-17页.pdf
- 社会服务行业动态:关注中美经贸会谈及外贸格局变化,五一假期中国澳门博彩收益增长-250512-中信建投-24页.pdf
- 【宏观快评】2025年4月金融数据点评:金融资产端与负债端的五个观察-250515-华创证券-12页.pdf
- 马应龙(600993)深度报告:深耕肛肠药品老字号,湿厕纸延伸带来新动力-250515-国海证券-51页.pdf
- 权益基金月度观察(2025/04):投资策略分布收敛,整体欠配金融地产-250514-华福证券-16页.pdf
- 毛戈平(1318.HK)深度报告:美妆先导,光蕴无界,熠熠生辉-250515-国海证券-43页.pdf
- 机械设备行业深度报告-灵巧手传感器:重塑人机边界,关注电子皮肤应用-250514-东北证券-41页.pdf
- 医药行业原料药2024及2025Q1业绩综述:保持韧性、优选弹性-250510-浙商证券-19页.pdf
- 关税“压力测试”系列之七:贸易冲突的“终局”?-250511-申万宏源-10页.pdf
- 家电行业月度报告:空调5月内销排产乐观,出口端中美关税会谈落地-250515-山西证券-11页.pdf
文档评论(0)