page load 與page init 的區別

2022-02-27 10:16:20 字數 1419 閱讀 3843

page_load 與page_init 的區別

預設新建乙個頁面,就會有乙個page_load事件的預設**,而page_init卻是另乙個對頁面作用非常重要的事件。

下面分別說明:

page_init:是在頁面未載入之前,也就是在頁面初始化之前,在page_load之前呼叫的,可以在控制項載入之前做一些客戶端檢測呀這些操作等。但這個事件對於當前使用者來說,只會進行一次,也就是第一次訪問這個頁面的時候,其執行一次。

page_load:在page_init之後執行(廢話),用於載入控制以及頁面的其它內容。客戶端每重新整理或是提交一次,page_load事件就重新繪製頁面,將當前頁面當新頁面來處理。

區別說清楚了,再來說一下這點區別的利用。

我想到的是,可以利用這一點來做頁面點選或是訪問次數的更加精確一點的計數。

比如說,在page_init裡執行計數的**,這樣這個頁面被同乙個使用者不停的刷或是操作的時候,其點選始終是1次,這樣計數就比較科學一些。當然,不能防止去了別的頁面再回來的情況了。

還有比如我以前**的訪問統計,記錄ip訪問以及**總的頁面訪問次數,都可以利用。

這裡只是乙個小小的想法,具體實現請自己diy。。

例子:以下**共二個檔案,儲存之後,執行即可

檔名(1):calendar.aspx.cs

using system;

using system.data;

using system.configuration;

using system.collections;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

public partial class control_calendar : system.web.ui.page

for (int m = 1; m < 13; m++)

for (int d = 1; d < 31; d++)

}protected void dropdownlist1_selectedindexchanged(object sender, eventargs e)

}protected void calendar1_selectionchanged(object sender, eventargs e)

}檔名(2).calendar.aspx

<%@ page language="c#" autoeventwireup="true" codefile="calendar.aspx.cs" inherits="control_calendar" %>

pageload重複執行的問題

如果頁面上出現src 類似等效屬性或樣式,會導致對某些頁面發生請求,導致page load執行兩次或更多,使頁面效能直線下降。例如而如果 例如 頁面上有此標記,那麼頁面載入到此標記時會對發生請求,如果有預設頁,那麼預設頁會被載入。因此要 去掉src 和 src 同時還有一些樣式,例如 也將對本頁進行...

關於Page Load事件發生情況

page load事件會在第一次載入頁面時發生和將該頁面回發到伺服器時發生 第一種情況page.ispostback返回false,第二種返回true。若在page load事件中有一些對控制項的操作,比如 txtname.text name txtauthor.text author txtcou...

總結一下Page Load和OnLoad

首先page load是乙個方法,onload也是乙個方法。onload是page類繼承自system.web.ui.templatecontrol,而system.web.ui.templatecontrol又繼承自system.web.ui.control。所以嚴格說來onload是屬於syst...