標籤:style blog class code java ext
1.一般處理常式ashx+html方式
ashx只是一個幕後處理類,在編譯時間伺服器會根據前台指令集,找到ashx的幕後處理類執行PocessRequest(),這裡簡稱pr方法,所以瀏覽器頁面的展示就交給html頁面了,對於資料互動的方式中,兩者主要是通過,響應報文替換的方式,首先在html頁面中預留戰位字串 例如{@str},資料更新或操作的時候,在html頁面中以超連結或者js方式跳轉到幕後處理頁面,在幕後處理頁面進行處理,將操作後的結果以html字串的方式返回,可以儲存在StringBuilder sbStr變數中,然後替換html中的預留位置在瀏覽器端顯示。
//html端的預留位置<html><head></head><body><@str>//佔位字串</body></html>//ashx的pr方法中System.Text.StringBuilder sbStr=new StringBulider(1000);//訪問資料庫,查詢資料結果返回資料modelMOdel.Class model=new BLL.Class.GetList();
//將得到的資料以html代碼添加到htmlCode中,然後替換佔位字串{@str}sbStr.AppendLine(htmlCode);sbStr.Replace("{@str}",htmlCode);
2.webForm方式
webForm相對於前一種模式來說,它的特點是減少了html代碼的編寫,它分為前台頁面aspx和後台類,前台頁面是繼承與後台類的,而後台類中向比於一般處理常式不再有pr方法,而是pageLoad方法,其實兩者都差不多,只是aspx.cs更進一步,ashx繼承與IhttpHandler而aspx是繼承於IhttpHandler的子類,對於aspx前台頁面好的一點是可以直接以<%%>的方式在html中使用C#文法,並且訪問protected存取層級以上的對象,webForm與上一種方式相比,ashx主要用於幕後處理,適用於html代碼比較少,而aspx則相反。
?
| 1 2 |
//接上例在aspx的前台頁面直接可以訪問sbStr <%=sbStr%> |
3.Ajax非同步方式
這種模式,我自己的理解是,瀏覽器端的多線程區別於以上兩種少了頁面跳轉和重新整理,前台和後台既是同步的,同時又是分離的,從“同步”方面來說,當前台有任何資料改變的話,幕後處理程式必須要緊跟著前台頁面同步 更新資料;而之所以又是“分離”,是因為前台的頁面都是通過ajax非同步對象進行與後台頁面的互動,而前台頁面根本沒有跳轉或重新整理過,他只是從前台頁面的結構出發,對頁面顯示的元素進行修改而已;要是對這種關係做一個形象的比喻的話,就像是照鏡子一樣,而變化的實體人就像是後台資料,而鏡子中人的虛像就像是前台頁面的布局,當人的動作發生改變時,虛像就會隨著改變,而這中間的聯絡者,就像是非同步對象 。