今天学习总结了一些相关概念和知识。javascript
以前不管是作 单机的winform 仍是 CS的winform 感受,不到两年下来感受还能够,虽然API有不少,可是仍是比较熟悉基于WINDOWS消息机制的编程,可是如今网络硬件设施更新之快,BS 开发优点之大,不过须要的技术方面却是得扩宽许多,JavaScript,CSS,Html都须要了解掌握,除webForm以外,对于现今主流的MVC更是须要学习。css
概念:html
asp.net控件服务端控件 --> 响应服务端事件
HTML控件客户端控件 -- > 响应客户端事件
HTML客户端事件是不会提交给服务端的,比说点击按钮,改变文字颜色等,只是针用户机器自己,是不会发送数据包给远程服务器的
而 asp.net按钮点击以后,将会以post或者get形式发送给服务器,进行数据库操做等等,页面提交以后将会刷新。
可是ajax技术使客户端控件发送请求给webservice java
现象获取用户输入到文本框中的内容:jquery
服务器端控件:string s=Textbox1.text;程序员
html控件:string s=request.querystring["text1"]; //text1为参数web
另:ajax
<input type="text" name="name" ><input type="button" value="肯定">
定义一个变量经过request.getParameter("name")取得,其中name 是标签名称
另外在javascript中能够
先在标签里加上一个id 如<input type="text" name="name" id="name">
再经过document.getElementById("name").value 取得标签中的值
===========================================================
获取文本框中的内容有如下两种方法:数据库
假设为以下文本框:编程
<input type="text" value="" id="text">
一、原生JS获取文本框的值:
document.getElementById("text").value //text为文本框的id
二、jquery获取文本框的值:
$("#text").val()
============================================================
Web服务器端控件和Html控件 关系
HTML 页面的扩展名是 .htm 或 .html。假如浏览器从服务器请求某张 HTML 页面,服务器不进行任何修改,就会把该页面发往浏览器。
ASP.NET 页面的扩展名是 .aspx。若是浏览器请求某张 ASP.NET 页面,那么在把结果发回浏览器以前,服务器首先会处理页面中的可执行代码。
最终浏览器仍是会由html输出,服务器控件的页面访问速度比html的要慢的多。asp.net以页面一遍遍刷新html的形式,这就决定了他的机制很慢。并且越是追求对程序员友好、功能强大,那么其性能问题越是严重。
一句话:服务器控件是封装好了html控件。 服务器控件经过ViewState维持状态,而HTML没有,若是没有交互的,能够直接用HTML控件。
服务器端控件都会有个runat="Server"属性,
这样才可以在后台对其进行设置修改,
也就是在cs代码里面能对其修改设置。
可测试 放个HTML控件 在CS代码是引用不出控件名的
而后HTML控件加上runat="Server" 在CS代码就能引用该控件了
本质上ASP.NET 的服务器控件 解析后返回到前台仍是HTML控件
建个页面 放一个asp:textbox上去
而后运行页面,而后查看页面源文件
会发现放上的服务器控件变成了HTML的inupt type="button"
<asp:Button width="7%" ID="btnupdate" runat="server" Text="Update" CssClass="trcss_tot1" OnClick="btnupdate_Click" />
顺便说一下VIEWSTATE:
因为HTTP链接属于无状态的,每次页面请求都没法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后仍是'a',.NET框架为实现这种机制,因而就用到了viewstate视图状态来保存这些控件的值,
那么将全部控件的值存在什么地方呢?能够运行程序,而后在页面中查看源文件,就能够看到一个input type="hidden" name="__VIEWSTATE"的标签,这个就是所谓的”视图“,它是通过服务器序列化过的,而后服务器接收后会反序列化这些隐藏域的值而后又从 新给这些控件赋值,从而页面刷新后还能记录上次请求时候的全部控件的值。服务器控件都会默认保存VIEWSTATE的 有个属性(EnableViewState)能够设置的, 设置为Flase就不保存了,页面刷新后,值也就没了,能够作个测试放个textbox设置EnableViewState为false,而后输入个 值,而后再用按钮去刷新页面,那么textbox会为空,由于没有视图状态记录到上次输入的值。
服务器端控件&html控件的使用问题
先说下:服务器端控件仅仅是微软为了方便一些入门开发者封装了一些html控件,因此说服务器端控件的根源来源于html控件,只不过在这控件基础上加入了一些封装的css\js以及开放一些供别人设置的接口而已。
因此说html控件趋势被取消掉那是绝对不可能的。取消了。就没有了Web存在的意义。要说取消趋势也是服务器端控件。
服务器端控件的发展趋势,从这几年来看,排斥的人愈来愈多,为何?
1.设置样式很是不方便,(不是说不能设置样式),而是不直接。
2.多数普通人员是不懂得怎么针对服务器端控件进行优化----如是否取消ViewState,是否须要这个控件进行postback,总之常常会看到这些人员作的网页源代码比普通html控件开发人员要多至少一辈的垃圾代码。不只性能很差提高,也验证影响SEO优化。
3.编写对应的一些javascript不方便。每次都要获取真正的服务器端ID,若是要将javascript写在js文件中,那是一种恶浩,你得变通采用非ID的方式或其余方式进行声明。繁琐
4.从微软目前的技术趋势来看,逐渐抛弃服务器端控件开发也是一种主流。固然选什么仍是要看你的项目来决定,有的开发公司天生就为了速度,拖拉服务器控件进行快速开发也是没啥好说坏与好。
推荐本相关参考与优秀博客:http://blog.csdn.net/lxfzgg/article/details/8467232