接上篇【我来解惑】.Net应该学什么怎么学(二)html
7、HTML、JavaScript、Dom前端
HTML是对网页长什么样子的一个描述,也就是“这里显示一个超连接、那里显示一个按钮”都是经过HTML来进行描述的。HTML作出来的页面是静态、不变化,若是要实现“点击【计算】按钮的时候让表格放大显示”这样的动态效果,则要经过程序操做Dom,通常使用JavaScript这种脚本语言来操做Dom。jquery
若是不想成为只会拖控件的开发人员的话,须要在学习ASP.Net以前把HTML、JavaScript、Dom这些好好学习。提到这一点有同窗可能会提出异议“不是这样的呀,ASP.Net已经封装的很好了,拖几个控件上来就能够了,ASP.Net都帮咱们生成HTML了,也不用学JavaScript,动态效果写C#代码就能够了”。浏览器
ASP.Net中这种拖ASP.Net控件的开发技术就叫作WebForm,微软的WebForm封装是很是伟大的技术,可以将复杂的Web开发简化到能够像开发WinForm程序同样点击,不得不佩服微软技术的强悍。使用WebForm咱们就能够进行傻瓜化的开发,要是天天的工做、作每一个项目的时候都能一直这样“傻瓜”下去也是很美好的,可是很不幸有一些场合中是不能使用这种傻瓜化的开发方式的,举几个例子:服务器
例子1:在网站的注册页面中让用户所在的省、市,提供两个下拉列表框(DropDownList),一个为省的列表框,一个为市的列表框,当用户选择不一样的省的时候,市列表框中就列出这个省下的全部市供用户选择。闭包
对于这样一个功能点,若是只会拖控件的人极可能会这么写(假设省列表框id为ddlProvince,市列表框id为ddlCity),在Page_Load中加载省列表到ddlProvince,而后在ddlProvince的SelectedIndexChanged事件中响应ddlProvince的选择变化,当ddlProvince选择变化后根据选中项来填充ddlCity。用这种方法实现最大的缺点就是页面会频繁的刷新,每次选择省之后页面都会唰一下的刷新一次,这在网速比较慢或者服务器压力比较大的时候是很慢的,并且用户体验不好。这种状况用JavaScript操做Dom的方法来操做才会比较好。dom
例子2:ASP.Net WebForm中可使用UpdatePanel控件很轻松的实现AJAX效果,不用懂JavaScript、Dom、Json,把控件用UpdatePanel包裹起来AJAX效果就出来了。可是用UpdatePanel实现AJAX只能在对性能要求不高的场合使用,若是要开发互联网应用等对性能要求很是高的场合,UpdatePanel控件是无法使用的。这时候就须要手写实现AJAX,而手写AJAX则须要对JavaScript、Dom很是熟悉。ide
即便所有使用ASP.Net WebForm控件实现,也是须要对HTML熟悉才能够的,好比不可能项目中使用ListView控件默认生成的代码,都须要手动调整ListView的模板,而调整模板就须要手写HTML,不是什么都“拖一拖”就行的。微软如今还推出了一个WebForm的兄弟产品:ASP.Net MVC,ASP.Net MVC并非替代WebForm的,各有所长,可是由于ASP.Net MVC的优势,之后确定会有愈来愈多的项目使用ASP.Net MVC。在ASP.Net MVC中就没有WebForm中这么傻瓜化了,不少地方须要手写HTML代码,这就对HTML等要求更高。布局
上面讲了HTML、JavaScript、Dom的重要性,下面来说一下具体要学哪些东西、怎么学。须要提早说明:Web开发中一个很是麻烦的一点就是HTML、Dom在不一样浏览器有少许的差别性,也就是一段代码可能在IE中和FireFox中的效果不同,对于初学者来讲暂时不须要管那些差别性,下降学习中没必要要的难度,学习的时候以一个浏览器为主就能够了。性能
刚接触HTML的人可能感受比较难,可是一旦熟悉了这种标签式的用法,HTML就变得很是简单了,HTML中标签比较多,标签的可用属性更多,作为一个初学者不必把全部标签、属性都学习了,并且也不可能都掌握,把最经常使用的标签以及它们的经常使用属性掌握了便可,主要的标签有:p、br、div、font、a、input、img、li、table、select、textarea、span。学习HTML的时候必定要坚持手写HTML,千万不要用VisualStudio、Dreamweaver等中的可视化的拖放方式来编写HTML页面,若是只会在设计器可视化拖出HTML页面的话,后面的学习会困难重重。HTML学习的一个目标就是可以彻底手写一个不少网站都有的那种静态注册页面出来。
HTML中还有一个知识点:CSS,CSS是用来对页面进行美化的描述语言,经过CSS咱们可以将按钮设置为红色或者给一个图片加上金色边框。CSS中有很是多的样式名,不须要掌握这么多样式名,学习的时候只要过一遍,大概知道每一个样式名是作什么的就能够;也不须要学习怎么将页面作的看好,不须要研究那些好看的CSS效果究竟是什么作出来的,由于那些工做是美工作的事情,即便是没有美工的小公司开发人员只要学会怎么“偷”别的网站作好的特效就能够了。初学者只要掌握几种CSS选择器和Div+CSS布局就能够。
和ASP.Net后台用C#写代码不同,对于Web前台页面的动态效果通常使用JavaScript(不用学已经在Web前端中被淘汰的VBScript)来编写,所以须要首先掌握JavaScript语言,JavaScript和C#的语法同样都是C语言发展过来,不少语法都和C#差很少,所以不用再从头学JavaScript语法,只要学习JavaScript和C#相比特有的语法就能够。JavaScript语言也有不少能够很深刻研究的东西,好比闭包、面向对象的实现等,可是除非作Web游戏开发、开发JavaScript库等对JavaScript要求很是高的领域,若是是开发互联网站、业务系统等(这占到公司项目中的大部分)对JavaScript并无过高的要求,只要熟悉一下JavaScript的语法就能够,而后在后面的Dom中经过练习逐步熟悉JavaScript。对于初学者来讲JavaScript到底学到什么程度是够用了是很难界定了,你们能够参考《【传智播客.Net视频】第7季JavaScript》这套视频教程,而后学Dom的时候参考《【传智播客.Net视频】第8季Dom》进一步练习就能够。
不少初学者刚接触Dom的时候老是想弄明白“到底什么是Dom”,劝你们不必纠结于这些概念,只要知道它是干什么的就能够,“经过JavaScript调用Dom中的属性、方法就能够动态的操做HTML页面”、“getElementById就是Dom、btn1.value=’abc’就是dom、btn1.onclick=myclick就是dom”,经过练习你就会明白这一点就能够了,我们不是编教科书的,不用搞那些无聊的概念定义。
Dom的东西很是多,仍是那个原则,不用什么都记住,主要掌握下面几点:事件、动态设置事件、setInterval定时器、event对象、getElementById、动态建立Dom元素(createElement、innerHTML、innerText)。掌握这些东西仍是要经过大量的练习来掌握的,只要能把第8季Dom这套视频中的练习熟练写出来这几个阶段的目标就达到了。
JQuery目前是最火的一个JavaScript的库,千万不要觉得是一个新的语言,听到过不少“Jquery是JavaScript的终结者,Jquery取代了JavaScript”的说法,却不知,Jquery只是个JavaScript的一个封装库,尽快Jquery语法看起来很是奇怪,可是Jquery确实是彻底符合JavaScript语法的一个封装库。Jquery只是对Dom操做的一个封装,学以前须要Dom基础,不然学起来会很晕。我不建议初学者学完了Dom之后当即学Jquery,仍是用Dom多写一些程序之后再来学Jquery才会掌握的又牢靠又快速,我讲课的时候就在讲完了Dom之后隔了8天的.Net高级技术才讲Jquery也是基于这个考虑。学习Jquery时的推荐看《【传智播客.Net视频】第9季JQuery》这套视频,而后参考书能够看《锋利的JQuery》。