ashx介紹以及ashx文件與aspx文件之間的區(qū)別
ashx是什么文件?
.ashx 文件用于寫(xiě)web handler的。.ashx文件與.aspx文件類(lèi)似,可以通過(guò)它來(lái)調(diào)用HttpHandler類(lèi),它免去了普通.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新加的文件類(lèi)型(其實(shí)在.net 1.0下已經(jīng)可用,但是沒(méi)有公開(kāi)提供).
ashx文件和aspx文件有什么不同? 我們先新建一個(gè)ashx文件看看:
代碼示例:
當(dāng)然你完全可以用.aspx 的文件后綴。使用.ashx 可以讓你專(zhuān)注于編程而不用管相關(guān)的WEB技術(shù)。.ashx必須包含IsReusable. 如下例所示
<% @ 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)顯示和處理邏輯分開(kāi),所以就弄成了兩個(gè)文件,其實(shí),在最終編譯的時(shí) 候,aspx和cs還是會(huì)編譯到同一個(gè)類(lèi)中去.這中間就要設(shè)計(jì)html的一些邏輯處理.而ashx不同,它只是簡(jiǎn)單的對(duì)web http請(qǐng)求的直接返回你想要返回的結(jié)果.比aspx少處理了html的過(guò)程.理論上,比aspx要快.
看看.net config文件中對(duì)兩個(gè)文件類(lèi)型請(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è)文件處理的類(lèi)不一樣(ashx處理的類(lèi)叫SimpleHandleFactory,既然叫Simple,應(yīng)該處理過(guò)程也比較 Simple.響應(yīng)速度也應(yīng)該快點(diǎn)吧:)
只要具體繼承了IHttpHandler如何處理的問(wèn)題,我這里找到一篇早期的,介紹.net 2.0編譯模型的問(wèn)題.比較深?yuàn)W,要慢慢鼓搗一下
鼓搗完了你就大概明白了ashx不過(guò).net里面自定義好的一個(gè)請(qǐng)求格式,ashx文件類(lèi)的文件的處理過(guò)程要比aspx要簡(jiǎn)單得多.
相關(guān)文章
asp.net頁(yè)面狀態(tài)管理cookie和服務(wù)器狀態(tài)管理Session
Session變量將在服務(wù)器為每個(gè)連接建立一個(gè)字典對(duì)象,使用的是服務(wù)端保存。Cookie可能會(huì)有一個(gè)按照年月日來(lái)判斷的作廢日期,而Session級(jí)別的變量在連接超時(shí)后就作廢2010-09-09Visual studio 2017如何發(fā)布dotnet core到docker
這篇文章主要介紹了Visual studio 2017如何發(fā)布dotnet core到docker的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Asp.net Core與類(lèi)庫(kù)讀取配置文件信息的方法
這篇文章主要給大家介紹了關(guān)于Asp.net Core與類(lèi)庫(kù)讀取配置文件信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12asp.net 獲取目錄下的文件數(shù)和文件夾數(shù)
遍歷一個(gè)文件夾中的文件,需要用到DirectoryInfo類(lèi)中的一個(gè)重要的方法GetFileSystemInfos(),此方法返回指定的是與搜索條件相匹配的文件和子目錄的強(qiáng)類(lèi)型 FileSystemInfo對(duì)象的數(shù)組。2010-07-07