Thành viên | Nội dung |
lenh_ho_xung
Tieu ngao giang ho 41 bài
| <% @ 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"); } }
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| Đơn giản nhỉ nhưng mà chạy ngon hơn trên aspx nhiều nhất là với sử lý file ảnh, mình mới bit thông tin này. Còn tại sao thì anh em tự tìm hiểu nhá !!
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| Còn đây là mẫu code làm con RSS
------------ RSSHandler.cs
namespace KBMentor2 { using System; using System.IO; using System.Web;
public class RSSHandler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/xml"; context.Response.ContentEncoding = System.Text.Encoding.UTF8; string sXml = BuildXMLString(); //not showing this function, //but it creates the XML string
context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(600)); context.Response.Cache.SetCacheability(HttpCacheability.Public); context.Response.Write( sXml ); }
public bool IsReusable { get { return true; } }
}
}
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| Nếu dùng aspx thì hơi khác một chút, anh em chúng ta phải thay đổi contenttype của file thành dạng xml, chứ mặc định nó là html
-----------
public class RSS : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e) { Response.ContentType = "text/xml"; Response.ContentEncoding = Encoding.UTF8;
string sXml = BuildXMLString(); //not showing this function, //but it creates the XML string
Response.Write( sXml ); Response.End(); } }
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| Có một cái lỗi chung chung nhá. Đây là code mẫu
----------- <%@ WebHandler Language="C#" Class="Handler" %>
using System; using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); }
public bool IsReusable { get { return false; } }
}
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| Cái code này sẽ ra lỗi sau :
Còn nếu thay content type thành text/html thì ngon code như sau :
------------- <%@ WebHandler Language="C#" Class="Handler" %>
using System; using System.Web; using System.Web.SessionState;
public class Handler : IHttpHandler , IReadOnlySessionState{
public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/html"; context.Response.Write("Hello World"); }
public bool IsReusable { get { return false; } }
}
và kết quả sẽ là
|
aspnet
Lập trình không biên giới 598 bài
|
Phải xem cái hình này để thấy lúc có 1 request đến server, thằng IIS tạo ra một đống các đối tượng: HttpContext, HttpRequest, and HttpResponse, HttpApplication. Mà để thằng aspx (page) chạy ngon thì thực tế là nó tạo ra 1 loạt các event và khởi tạo một tỷ thứ linh tinh khác theo thứ tự dưới đây:
PreInit Init InitComplete PreLoad Load Control events LoadComplete PreRender SaveStateComplete Render Unload
có 11 bước thôi mà làm gì nhiều lắm đâu. Còn thằng ashx thì chỉ đơn giản độc có 1 hàm thực hiện đó là
ProcessRequest
Nên nó nhanh hơn là phải thoai. hehe
|
lenh_ho_xung
Tieu ngao giang ho 41 bài
| hờ hơ, cảm ơn pác aspnet nhá
|
|