|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也不知道,我同学昨天说数据挖掘很好。创立一个类库,创建以下类:
复制代码代码以下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Web;//援用web定名空间
usingSystem.Text;
namespaceTimerHttpModule
{
publicclassClass1:IHttpModule//承继IHttpModules
{
publicvoidInit(HttpApplicationapplication)//完成IHttpModules中的Init事务
{
//定阅两个事务
application.BeginRequest+=newEventHandler(application_BeginRequest);
application.EndRequest+=newEventHandler(application_EndRequest);
}
privateDateTimestarttime;
privatevoidapplication_BeginRequest(objectsender,EventArgse)
{
//objectsender是BeginRequest传送过去的工具
//内里存储的就是HttpApplication实例
//HttpApplication实例里包括HttpContext属性
starttime=DateTime.Now;
}
privatevoidapplication_EndRequest(objectsender,EventArgse)
{
DateTimeendtime=DateTime.Now;
HttpApplicationapplication=(HttpApplication)sender;
HttpContextcontext=application.Context;
context.Response.Write("<p>页面实行工夫:"+(endtime-starttime).ToString()+"</p>");
}
//必需完成dispose接口
publicvoidDispose(){}
}
}
天生后将dll文件copy到bin目次,接着在web.config中注册这个HttpModule:
复制代码代码以下:
<configuration>
<system.web>
<httpModules>
<addname="TimerHttpModule"type="TimerHttpModule.Class1"/>
</httpModules>
</system.web>
</configuration>
如许网站的每个.net页面底部城市显现页面的实行工夫了。
不外如许做要当心,由于每一个.net页面开端城市被加上实行工夫,包含webservices和ashx页面,和你大概不是用来间接做页面的.aspx页面(比方你用来输出json数据大概xml数据)。以是,为了包管平安,还必需接纳有针对性的办法来制止这类情形的产生。
办法一:在Response.Write办法之前做判别,扫除一些不想增加实行工夫的页面,能够经由过程Request.URL来判别;
办法二:不要把实行工夫间接增加到页面输入的尾端,而是作为一个httpheader输入。利用Response.AddHeader(key,value)能够完成这个希望。实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。 |
|