Trong bài này chúng ta sẽ tìm hiểu về vòng đời của một trang ASP.NET, trước khi tìm hiểu bài bài chúng tôi khuyên bạn nên củng cố lại các bài trước
Bài 2. Tạo trang ASP.NET đầu tiên
Vòng đời(Life Cycle) là gì? Ta có thể hiểu đơn giản đó là một quá trình từ việc bắt đầu khởi tạo cho đến lúc kết thúc một ứng dụng. Ta gọi đó là life cycle.
Vòng đời của một trang ASP.NET được chia thành 2 nhóm:
- Application Life Cycle
- Page Life Cycle
1. NET Application Life Cycle:
Application life cycle có thể chia thành các giai đoạn sau:
- Người dùng gửi một yêu cầu truy cập vào dữ liệu của ứng dụng. Trình duyệt sẽ gửi yêu cầu này đến Web Server.
- Các sự kiện sau đây sẽ được khởi tạo:
- Một đối tượng cũa lớp ApplicationManager được tạo
- Một đối tượng của lớp HostingEnvironment được tạo để cung cấp thông tin về nguồn dữ liệu
- Các thành phần đầu của ứng dụng sẽ được biên dịch
- Các đối tượng như HttpContext, HttpRequest và HttpResponse được khởi tạo và cài đặt.
- Một thể hiện của đối tượng HttpApplication được tạo và gắn cho yêu cầu.
- Các yếu cầu được xử lí bởi lớp HttpApplication, các sự kiện khác nhau được kích hoạt bới lớp này để xử lí các yêu cầu.
2. ASP.NET Page Life Cycle:
Khi một trang được yêu cầu, nó sẽ được load vào bộ nhớ của Server, xử lí và gửi lại Browser. Sau đó nó sẽ bị giải phóng khỏi bộ nhớ. Vào mỗi bước, các phương thức và sự kiện luôn có sẵn, ta có thể viết lại cách xử lí tương ứng cho mỗi ứng dụng.
Lớp Page sẽ tạo một cây có thứ tự cho tất cả các control. Chúng ta có thể thấy cây này bằng cách thêm dòng “trace = “true” ” trong phần chỉ thị trang.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm.aspx.cs" Inherits="ASP_P119_Caching.WebForm" Trace="true" %>
Page life cycle gồm:
- Page Request:: khi trang ASP.NET nhận được request nó sẽ quyết định việc sẽ xử lí và biên dịch trang hay lưu lại một trang vào bộ nhớ đệm.
- Starting of page life cycle: Trong bước này, các đối tượng yêu cầu và phản hồi được cài đặt. Nếu đó là một yêu cầu trước đó hay post back, thuộc tính IsPostback sẽ được set là true.
- Page initialization: Bước này các control sẽ được xác định với một ID duy nhất. Trong một yêu cầu mới, dữ liệu được load và các thuộc tính của control được restore vào các giá trị của view state.
- Page load: Các thuộc tính của control được thiết lập để sử dụng giá tri của view state.
- Validation: Xác nhận giá trị trong phương thức của control được gọi có hợp lệ hay không.
- Postback event handling: Nếu yếu cầu là postback(yêu cầu cũ) có sự kiện có liên quan sẽ được gọi.
- Page rendering: Trạng thái của trang và các control được lưu lại. Trang sẽ gọi phương thức Render cho mỗi control và kết cả của việc render được ghi lại vào lớp OutputStream cho thuộc tính Response của trang. Quá trình render được gửi vào client và thuộc tính của trang, như Response, Request đuọc xoá bỏ.
. 3. Page Life Cycle Events:
Trong mỗi vòng đời của trang, sẽ có một số sự kiện được tạo ra, có thể xủ lí theo mục đích cụ thể.
Hình dưới đây giới thiệu một số sự kiện của Page
- Init: Sự kiện Page_Init xảy ra đầu tiên khi trang web được yêu cầu
- Load: Nơi đặt phần lớn các xử lý, giá trị khởi tạo ban đầu cho trang web. Sự kiện này luôn xảy ra mỗi khi trang Web được yêu cầu.
- PreRender: Sự kiện xảy ra khi trang Web chuẩn bị được trả về cho Client.
- Upload: Sự kiện này đối lập với Page_Init, đây là sự kiện xảy ra sau cùng, sau tất cả các sự kiện khác.
Nguồn tham khảo: Tuttorialspoint
bài viết rất hay, cảm ơn bạn!