AJAX 與 ASP.Net PostBack

自ASP"升級"成為ASP.NET後,出現了一個ASP所沒有的名詞:PostBack,而PostBack讓開發WebApp變的簡單了,但卻也讓Server端的Loading變得重了。

最近聲名大噪的AJAX(Asynchronous JavaScript And XML;非同步的JavaScript和XML)其實不是一項新技術,它早在IE 5的時代就已經出現了,AJAX主要的核心技術就是XMLHttpRequest,專注於開發WebApp的先進們,對XMLHttpRequest應該不陌生,當時的XMLHttpRequest是以ActiveX型態出現的,而且只能適用於IE平台,所以使用的人少之又少,隨著Atlas的引入,以及M$對AJAX的大力支持,使得越來越多的網站使用AJAX技術,譬如目前最有名的Google Maps,以及前一陣子改版的Yahoo!奇摩字典等等。
ASP.NET使用PostBack的方式來更新網頁,這會將網頁上的所有欄位資料傳回伺服端(Server),處理完畢後再傳給使用端(Client),這樣不但會浪費伺服端的資源,還會浪費網路的有效傳輸,這是該讓ASP.NET WebApp Designer好好思考的議題。
也因為PostBack,養成了ASP.NET WebApp Designer的一些壞習慣:所有驗證動作都用PostBack,完全不考慮伺服器、頻寬的負載;一昧的要求硬體升級、頻寬升級,落得"網站設計師只是賠錢貨"的名聲;不但如此,也讓Designer忽略或忘記了有JavaScript這個使用端腳本語言,甚至一聽到JavaScript就害怕,因為JavaScript沒有一個好用的Debugger...
以專案的進行,主管通常不會要求使用AJAX技術,因為要趕時程,所以都會要求能以最短的開發時程為第一優先考慮,假如還有時間的話,才會考慮去改善程式效能,但是到最後... 通常都會沒有時間...
PostBack並不是那麼的一無是處,AJAX也不是那麼的"無敵";AJAX用的不好,不但無法降低伺服端資源與頻寬的浪費,反而會更甚,進而影響使用端的操作效能;但假如PostBack與AJAX一起使用的話,我想不但能有更好的效能,還可以有更大的彈性開發WebApp。

來源網址

沒有留言:

張貼留言