淺析ASP.NET異步頁面
ASP.NET異步頁面與ajax異步的效果區別:
1:ASP.NET的異步頁面讓我***想法是和ajax效果比較,ajax應用在比較費時的方法上,當數據加載時,在頁面顯示數據的區域先用一段提示文字,例如:數據正在加載中...之類的,無論這個方法多么費時,它只影響這一塊的數據顯示,頁面其它區域不受影響(如果速度不慢的話)。而ASP.NET異步頁面并不能達到這種效果,從上面的異步執行流程圖可以看出,異步調用的事件發生在onprerendercomplete中,就是說在頁面中生命周期之內,頁面要想完全呈現給用戶,必須等待異步方法返回結果。例如,一個費時的異步io方法,需要費時10s,那么用戶要想看到頁面,起碼在10s以上。
2:ASP.NET異步頁面增加的是處理請求的數量,線程池線程得到了高效的使用,提高了可伸縮性,而ajax是在頁面加載完成之后根據返回結果調用回調函數操作dom完成數據加載。
異步任務:
ASP.NET 2.0 中引入了另一個方法來簡化異步操作: registerasynctask,比 addonprerendercompleteasync 具有以下優勢。
1:除了 begin 和 end 方法,registerasynctask 允許注冊當異步操作長時間無法完成時調用的超時方法。設置 @ page 指令中 asynctimeout 屬性設置超時。
2:可以在一個請求中多次調用 registerasynctask 來注冊若干異步操作。
3:可以使用 registerasynctask 的第四個參數將狀態傳遞給 begin 方法。這個參數一般設置為null。
registerasynctask 的異步頁與依賴于 addonprerendercompleteasync 的異步頁相類似。需要將該頁的 asyncmode 屬性設置為 true,且與通過 prerender 事件執行,此時調用使用 registerasynctask 注冊的 begin 方法,而不是addonprerendercompleteasync ,而且進一步保持請求處理直到***一個操作完成。
總結:
正確的使用好asp.net異步頁面在某些環境下能夠使得應用程序性能得到優化。
【編輯推薦】