CAS——手写第一步:HTML控件与Web服务器控件

         ITOOCAS我负责带领研究了一段时间,貌似退出做出来了,但是它一直是病态的,俗话说,有病就得治,治不了想办法也得治,原路一直是在找我们错在了哪里,为什么不能实现的怪圈里。其实我们可以跳出这个怪圈,用另外一种方法去解决这个问题。

        既然当前的CAS用不了,SSO退出实现不了,那我们就自己用单点登录的逻辑自己写一套CAS。写的过程中,大屈是主导君,我是管理君。后来交给我一个小任务,就是把服务器控件改成HTML客户端控件。当时不造为什么,现在来研究一下这两种控件有什么区别。

        这要追溯到Asp.net控件了。

             

ASP.NET共有几种控件?

1html控件:

        就是我们常用的html语言标记,不受服务器端控制,只能在客户端通过js和其它语言脚本等程序语言来控制。例如

    <inputtype="button" id="btn" value="button"/>

2html服务器控件:

         其实就是html控件的基础上加上runat="server"所构成的控件.他们的运行方式不同,html控件运行在客户端,html服务器控件是运行在服务器端的. ASP.NET 网页执行时,会检查标注有无runat属性,如果标注没有设定,那么Html标注就会被视为字符串,并被送到字符串流等待送到客户端,客户端的浏览器会对其进行解释;如果Html标注有设定runat="server"属性,Page对象会将该控件放入控制器,服务器端的代码就能对其进行控制,等到控制执行完毕后再将Html服务器控件的执行结果转换成Html标注,然后当成字符串流发送到客户端进行解释  。

      <inputid="Button" type="button" value="button"runat="server" />

3、web服务器控件:也称Asp.net服务器控件

          是WebForm编程的基本元素,也是asp.net所特有的。它会按照client的情况产生一个或者多个html控件,而不是直接描述html元素。如:  

    <asp:Button ID="Button2" runat="server"Text="Button" />


          那么

Asp.net服务器控件和html服务器控件有什么区别呢?

         1、Asp.net服务器控件提供更加统一的编程接口,如每个Asp.net服务器控件都有Text属性。

         2、Asp.net服务器控件隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是ie还是firefox,或者是移动设备。

        3、Asp.net服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存。

        4、事件处理模型不同,Html标注和Html服务器控件的事件处理都是在客户端的页面上,而Asp.net服务器控件则是在服务器上。

 

总结:

          Html标注和Html服务器控件的事件是由页面来触发的,而Asp.net服务器控件则是由页面把Form发回到服务器端,由服务器来处理。这也就是一开始我的疑问所在了,服务器控件点击之后会刷新整个页面,而客户端控件就不会,而我们要的效果就是出发一个控件不会刷新整个表单。

        对于Asp.net这块的东西好像是有些陌生了,对于自己学过的东西当用到的时候还是需要上网查的,不能信手拈来。还是对我们学过的知识没有穿起来形成网。所以,学习吧,少年,总有一天你会为自己曾经的努力而窃喜……

 

你可能感兴趣的:(CAS——手写第一步:HTML控件与Web服务器控件)