日期:2014-05-17  浏览次数:20941 次

ASP.Net原理篇 之 一般处理程序(ashx)



在学习asp.net期间 老师反复告诉我们 千万不要做只会 “拖控件的”ASP.Net程序员!!!
何为 只会 “拖控件的”ASP.Net程序员? 
当初微软推出ASP.Net的时候 那个时候VB、delphi等“拖控件”式的语言相当的火爆 微软为了把这些程序员全部拉拢过来使用ASP.Net开发网站
把ASP.Net也做成了那种“拖控件”式的开发形式 让VB、delphi等一些程序员不需要经过长时间的熟悉就能成功的转为一名ASP.Net程序员
这一做法也是非常成功的 的确“拉拢”了不少程序员 
但是 任何事物都是有两面性的 虽然这样开发一个网站时方便了许多 成本也能提高不少 但是一个全部“拖”出来的网站 运行速度
是相当慢的 也不是说“拖”出来的网站 一无是处 一般这样的网站用在用户访问量比较少的情况下 比如网站的后台 一个企业内部的OA
(如果是比较大的企业的话 也不适合用“拖”出来的网站)  因为当“拖”服务端控件的时候 页面会产生大量的ViewState等一些冗余代码
页面加载的速度会非常的慢 用户体验非常的不好 
这个时候 就要用到非服务端控件开发了 非服务端控件一般用在用户访问量比较大的情况下 比如互联网的门户网站
既然要使用非服务端控件 我们程序员就要了解其内部的运行的原理 在开发的过程中 才能更好的优化网站、排错等

这个系列的文章我准备分为五篇 分别介绍一下  一般处理程序的运行原理、aspx页面\页面生命周期的运行原理、Cookie原理、session原理 还有 Viewstate原理 


当然 我一个人的力量是有限的 肯定会有错误的地方 还请各位高手能够指出小弟的错误 以便我改进 !! 万分感谢 !!!

好了 言归正传 这篇文章来说说  一般处理程序的运行原理


ashx文件其实就是一个类 一般用在页面比较简单 没有复杂的控件的情况下
我们假如这个类叫做Default 这个类必须继承IHttpHandler 接口  应为只有这个接口中才有ProcessRequest方法
最后 我们使用context.Response.Write("");将内容输出到浏览器



我也将ashx的原理 画你一个流程图 方便大家理解