ASP.NET 的頁面生命週期與 PostBack

July 18, 2021

本篇文章介紹 ASP.NET 的頁面生命週期的各階段行為,以及 PostBack 的簡介、與 CallBack 的差異。

ASP.NET 的頁面生命週期

目前常用到的 ASP.NET 的生命週期:

Page_Init: 在每個控制項初始化後,會觸發本事件。可用來讀取或初始化控制項的屬性。

Page_Load: 頁面物件本身、每個控制項載入後,都會觸發本事件。控制項的事件會比頁面的事件晚觸發。

  • 第一個頁面資料被回復的地方。
  • 絕大部分程式碼會檢查 IsPostBack,去避免不必要的重設狀態。(參考下方章節)
  • 可以在這裡建立動態控制項。

控制項 PostBack: 控制項的每個事件都會造成 PostBack。

  • 可以使用這些事件處理控制項的行為。

OnPreRender: 準備被繪製到頁面上。

什麼是 PostBack

PostBack 和 CallBack 的差異

  • PostBack 可能會清除狀態資訊,如變數值。
  • PostBack 是把全部的資料都回傳給 Server 處理,而 CallBack 只要回傳有觸發的部分 (ex. 按鈕) 即可。
  • CallBack 處理完成後,也只須回傳須更新的資訊,可減輕伺服器的負擔。

參考資料