ashx介紹以及ashx檔案與aspx檔案之間的區別_實用技巧

來源:互聯網
上載者:User

ashx是什麼檔案?

.ashx 檔案用於寫web handler的。.ashx檔案與.aspx檔案類似,可以通過它來調用HttpHandler類,它免去了普通.aspx頁面的控制項解析以及頁面處理的過程。其實就是帶HTML和C#的混合檔案。

.ashx檔案適合產生供瀏覽器處理的、不需要回傳處理的資料格式,例如用於產生動態圖片、動態文本等內容。

ashx檔案是.net 2.0新加的檔案類型(其實在.net 1.0下已經可用,但是沒有公開提供).

ashx檔案和aspx檔案有什麼不同? 我們先建立一個ashx檔案看看:

程式碼範例:
當然你完全可以用.aspx 的檔案尾碼。使用.ashx 可以讓你專註於編程而不用管相關的WEB技術。.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的好處在於不用多一個html

看,比aspx簡潔多了吧.只有一個檔案,沒有後台cs檔案(基於代碼安全考慮,後邊我們會自己添加這個檔案).ashx對比aspx檔案,就好像 少了cs檔案.其實這就是ashx和aspx不同的地方,因為aspx要將前後台顯示和處理邏輯分開,所以就弄成了兩個檔案,其實,在最終編譯的時 候,aspx和cs還是會編譯到同一個類中去.這中間就要設計html的一些邏輯處理.而ashx不同,它只是簡單的對web http請求的直接返回你想要返回的結果.比aspx少處理了html的過程.理論上,比aspx要快.

看看.net config檔案中對兩個檔案類型請求的配置吧

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

可以看到兩個檔案處理的類不一樣(ashx處理的類叫SimpleHandleFactory,既然叫Simple,應該處理過程也比較 Simple.響應速度也應該快點吧:)

只要具體繼承了IHttpHandler如何處理的問題,我這裡找到一篇早期的,介紹.net 2.0編譯模型的問題.比較深奧,要慢慢鼓搗一下:(台灣朋友寫的Pdf檔案,上傳不了,在些處略。)

鼓搗完了你就大概明白了ashx不過.net裡面自訂好的一個請求格式,ashx檔案類的檔案的處理過程要比aspx要簡單得多.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.