首页 > 代码库 > 开发路程(12):ashx文件和aspx

开发路程(12):ashx文件和aspx

ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:

 1 <%@ WebHandler Language="C#" Class="Handler" %> 2 using System; 3 using System.Web; 4 public class Handler : IHttpHandler  5 { 6   public void ProcessRequest (HttpContext context)  7   { 8    context.Response.ContentType = "text/plain"; 9    context.Response.Write("Hello World");10   }11   public bool IsReusable 12   {13      get 14      {15      return false;16      }17   }18 }

这是新建了Handler.ashx文件.

ashx比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理.而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程.理论上,比aspx要快.

看看.net config文件中对两个文件类型请求的配置吧:

1 <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />2 <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />

可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较Simple.响应速度也应该快点吧:)