分享
 
 
 

ASP.NET Pre-Compilation and Keep-Alive

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

ASP.NET Pre-Compilation and Keep-Alive

1、Pre-Compilation in Whidbey

ASP.NET一大特色就是Dynamic Compilation,但是有些场合Pre-Compilation却是更好的选择,比如,你不想访问你的站点的第一个用户痴痴的等待,或者你根本不想把任何源码(包括HTML的内容)给你的用户。

Pre-Compilation在ASP.NET 2.0中支持得很彻底,你可以选择In-Place Pre-Compilation,只需要你访问一下:

http://站点名称/WebApp名称/PreCompile.axd

系统就会将WebApp里面所有的页面先给你编译一遍。

或者,更加彻底的方式,PreCompilation for Deployment,.Net Framework 2.0提供了一个命令行的工具(aspnet_compiler.exe),让你将WebApp中所有的代码、页面(包括HTML)、静态文件全部编译进dll,然后给你一个“Deployment-Ready WebApp”,No Code、No Html,呵呵,但是浏览起来和普通的WebApp没有区别。

这篇文章包含了更多的信息。

2、Pre-Compilation and Keep-Alive in .NET Framework 1.1

Whidbey毕竟是明年的事,其实在现在,我们也可以想一些办法。

Global.asax里面的那个Global类是继承自HttpApplication的,我们可以自己插入一个中间层,来做一些自己的事情。比如我们创建一个PreGlobal类,继承自HttpApplication,在PreGlobar.Init()方法中,创建一个新的线程,让这个线程遍历访问WebApp中所有的.aspx和.ascx(对ascx就LoadControl(),对aspx就HttpWebRequest.Create(url).GetResponse()),这样可以实现我们自己的“Pre-Compilation”,然后再让Global继承自我们自己的这个PreGlobal就可以了。

我们可以感觉到,如果一段时间没有访问WebApp,那么当再次访问时,速度大大降低,这是因为Clr会自动将站点的Assembly从内存中Unload,当再次访问时,再载入Assembly,而这个动作是相当耗时的(想想在电脑上运行一个WinForm,它的启动时间)。我们需要想一个办法让我们的WebApp始终Keep-Alive,这样Clr就不会将它Unload了。方法还是PreGlobal.Init()方法,我们在这个方法中创建一个Timer对象,定时时间小于默认的Session过期时间即可,在其Elapsed事件中调用一下“HttpWebRequest.Create(站点url).GetResponse()”就可以让我们的站点始终Alive了。

这个方法是从ASPAliance上看来的,具体出处已经找不到了。

3、Delphi8

D8的文章在CSDN上也渐渐多了起来。如果不讨厌Pascal的语法,那么D8安装目录的source目录下的文件实在是一个不错的学习.NET的资源,里面有D8的RTL、VCL.NET、Indy.NET、Web数据感知控件实现的源码,至少可以看看D8是如何将它的东西和.NET的东西结合起来的。

比如,在Borland.Delphi.System.pas里面,我看到了TObject = System.Object,呵呵,和我们想象的一样。在Borland.Vcl.Classes.pas里面,我看到了TList有一个private成员FList是System.Collections.ArrayList类型的,于是显然TList是通过聚合ArrayList来实现的。而在Borland.Vcl.Forms.pas里面,可以看到TForm是从TCustomForm继承下来,然后上面依次是TScrollingWinControl、TWinControl、TControl...和System.Windows.Forms.Form没什么关系,这也就是D8要分VCL.NET App和Win App的原因,VCL.NET很多控件仍然是Borland按自己的方式写的(虽然都是Managed Code写的),他们和WinForms不一定完全兼容的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有