web入门三阶段
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); //访问数据库,查询数据结果返回数据model MOdel.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异步对象进行与后台页面的交互,而前台页面根本没有跳转或刷新过,他只是从前台页面的结构出发,对页面显示的元素进行修改而已;要是对这种关系做一个形象的比喻的话,就像是照镜子一样,而变化的实体人就像是后台数据,而镜子中人的虚像就像是前台页面的布局,当人的动作发生改变时,虚像就会随着改变,而这中间的联系者,就像是异步对象 。