ashx是什么文件?
.ashx 文件用于寫web handler的。.ashx文件與.aspx文件類似,可以通過(guò)它來(lái)調(diào)用HttpHandler類,它免去了普通.aspx頁(yè)面的控件解析以及頁(yè)面處理的過(guò)程。其實(shí)就是帶HTML和C#的混合文件。
.ashx文件適合產(chǎn)生供瀏覽器處理的、不需要回發(fā)處理的數(shù)據(jù)格式,例如用于生成動(dòng)態(tài)圖片、動(dòng)態(tài)文本等內(nèi)容。
ashx文件是.net 2.0新加的文件類型(其實(shí)在.net 1.0下已經(jīng)可用,但是沒(méi)有公開提供).
ashx文件和aspx文件有什么不同? 我們先新建一個(gè)ashx文件看看:
代碼示例:
當(dāng)然你完全可以用.aspx 的文件后綴。使用.ashx 可以讓你專注于編程而不用管相關(guān)的WEB技術(shù)。.ashx必須包含IsReusable. 如下例所示
復(fù)制代碼 代碼如下:
% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
public bool IsReusable
{ get { return true; } }
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}
.ashx比.aspx的好處在于不用多一個(gè)html
看,比aspx簡(jiǎn)潔多了吧.只有一個(gè)文件,沒(méi)有后臺(tái)cs文件(基于代碼安全考慮,后邊我們會(huì)自己添加這個(gè)文件).ashx對(duì)比aspx文件,就好像 少了cs文件.其實(shí)這就是ashx和aspx不同的地方,因?yàn)閍spx要將前后臺(tái)顯示和處理邏輯分開,所以就弄成了兩個(gè)文件,其實(shí),在最終編譯的時(shí) 候,aspx和cs還是會(huì)編譯到同一個(gè)類中去.這中間就要設(shè)計(jì)html的一些邏輯處理.而ashx不同,它只是簡(jiǎn)單的對(duì)web http請(qǐng)求的直接返回你想要返回的結(jié)果.比aspx少處理了html的過(guò)程.理論上,比aspx要快.
看看.net config文件中對(duì)兩個(gè)文件類型請(qǐng)求的配置吧
add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
可以看到兩個(gè)文件處理的類不一樣(ashx處理的類叫SimpleHandleFactory,既然叫Simple,應(yīng)該處理過(guò)程也比較 Simple.響應(yīng)速度也應(yīng)該快點(diǎn)吧:)
只要具體繼承了IHttpHandler如何處理的問(wèn)題,我這里找到一篇早期的,介紹.net 2.0編譯模型的問(wèn)題.比較深?yuàn)W,要慢慢鼓搗一下:(臺(tái)灣朋友寫的Pdf文件,上傳不了,在些處略。)
鼓搗完了你就大概明白了ashx不過(guò).net里面自定義好的一個(gè)請(qǐng)求格式,ashx文件類的文件的處理過(guò)程要比aspx要簡(jiǎn)單得多.
您可能感興趣的文章:- ashx中使用session的方法(獲取session值)
- ASP.NET ASHX中獲得Session的方法
- Asp.net在ashx文件中處理Session問(wèn)題解決方法
- 在ashx文件中使用session的解決思路
- ashx文件的使用小結(jié)
- aspx與ascx,ashx的用法總結(jié)
- 后綴為 ashx 與 axd 的文件區(qū)別淺析
- 基于.NET中:自動(dòng)將請(qǐng)求參數(shù)綁定到ASPX、ASHX和MVC的方法(菜鳥必看)
- *.ashx文件不能訪問(wèn)Session值的解決方法