JavaScript的網頁事件處理的想法

ASP.NET AJAX中提供了Client端JavaScript的事件處理程序,這樣的處理方式跟Server端的事件相當類似

ASP.NET AJAX中提供了Client端JavaScript的事件處理程序,這樣的處理方式跟Server端的事件相當類似,

我最常用的是這當中的pageLoad事件處理程序,這個程序的功能可以在網頁載入完成後觸發,

這樣一來,我可以確保在網頁的物件全部載入完成後,存取物件沒有問題的情況下,執行我的程式,

因此,我會儘量使用這樣的事件模型來處理Client的JavaScript程式,

即使JQuery提供了ready()這樣的函式相當於pageLoad的功能,

不過,如果有什麼程式需要在Server端執行完成後,立即執行一段JavaScript的話,

可能會使用ScriptManager.RegisterStartupScript()來執行一段JavaScript,

像這樣的執行,將會在網頁還沒載入完成,到達這段JavaScript程式的時候就會執行下去,

以我來說,我會希望程式是在網頁載入完成之後才開始執行,

所以想將其註冊到pageLoad之中,

但是,pageLoad的函式已經定義在網頁中了,沒有辦法用動態定義的方式,

畢竟這個函式上面會寫上一些需要在網頁載入後所要執行的一些程式,

後來想到了一個方法來解決這個問題,

我想到如果我讓pageLoad永遠執行一個動態註冊的函式就可以解決,

這個函式的內容可能會是空的,也可能會有程式碼,

這個取決於我如何註冊這個函式,

而在Server端,我可以做一個JavaScript函式內容的註冊物件,

然後在網頁呈現之前把程式動態註冊到函式的內容中,

這樣就可以達成我所想要的目的,

而動態註冊的動作最佳的執行點,可以在PreRender這個事件中處理,

不過,這樣就得想想網頁的元件要如何運用這項機制了。