AngularJS。优点:模板功能强大,声明式,附带丰富的Angular指令;是一个比较完整的前端MV*框架,包括模板、数据双向绑定、路由、模块化、服务、过滤器、依赖注入等功能;自定义Directive比jQuery插件更灵活,但是需要了解Directive的一些特性,简单的封装容易,做起来稍微复杂一些。官方没有提供详细的介绍文档。我们可以通过阅读源码找到一些我们需要的东西,比如:在指令中使用$parse;ng模块化大胆的引入了一些Java的东西(依赖注入),可以很方便的写出可重用的代码,这对敏捷开发团队很有帮助,从我们项目上线到现在,UI变化很大,产品是在摸索的过程中不断迭代,但是js代码基本上很少改动。补充:Angular支持单元测试和端到端测试。缺点:验证功能的错误信息显示比较弱,需要写很多模板标签,没有jQueryValidate方便,可以自己封装验证错误信息提示;ngView只能有一个,不能嵌套多个view,虽然有angular-ui/ui-router·github解决了,但是好像ui-router控制url不是很灵活,必须嵌套;对于特别复杂的应用场景,性能好像有点问题,尤其是在Windows下使用chrome浏览器的时候,不知道是内存泄露还是其他什么问题。我还没有找到好的解决方案。奇怪的是在IE10下速度非常快。这次我从1.0.X升级到1.2.X。好像有比较大的调整,没有完美的兼容。低版本,升级后可能会出现兼容性bug。具体可以参考官方文档AngularJS,对应中文版:Angular1.0to1.2MigrationGuideng主张controller中不要有DOM操作代码,对于一些jQuery插件如果不想破坏代码的整洁度,需要写一些指令来封装插件,但是现在支持Angular的插件版本很多,比如:jQueryFileUploadDemoAngular太繁琐,不允许用户选择轻量级的当然,在1.2.X之后,Angular也在做一些改变,比如route、animate等独立模块,让用户自行选择。什么是AJAX,并简述异步请求和同步请求的区别?AJAX是一种无需重新加载整个网页即可更新网页部分内容的技术。AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。AJAX使网页能够通过在后台与服务器交换少量数据来异步更新。这意味着可以在不重新加载整个网页的情况下更新网页的部分内容。同步是指发送方发送完数据,等待接收方发回响应后再发送下一个数据包的通信方式。用户填写完所有信息后,提交给服务器,等待服务器的响应(校验数据),是一次性的。信息有误,需重新填写!异步是指发送方发送数据后,不等待接收方发回响应,再发送下一个数据包的通信方式。用户填写一条信息后,该信息会自动提交给服务器,然后由服务器响应给客户端。在这个过程中,用户仍然在填写表单中的信息,即多次请求服务器,节省了用户的时间,提高了效率。用户体验。同步请求:客户端请求(等待)->服务端处理->响应->页面加载(缺少对象:XMLhttpRequest)此时如果出错,只能重新发送请求,再次等待异步请求:例如,当你填写邮箱地址时,页面当时将邮箱地址发送给服务器(即页面发送请求),服务器处理并响应,并得到你要重复填写的邮箱地址,并将响应结果发送到页面。在此过程中,您仍然可以填写其他内容。这时候服务器会提示你有重复的邮箱地址。页面上的表现只是在邮箱地址旁边加了一行字或者把整个文本框标成红色。它不会刷新您的页面。所有填写错误都会实时显示,您会实时更正。在这个过程中,你会刷新整个页面,不会有整个页面的提交和等待。最后提交,一切就搞定了。总结:页面操作和服务端操作不会相互阻塞=====建立异步请求流程的四步:============a:新建一个XHR对象b:调用open方法c:发送一些数据d:监视进程以了解服务器是不是正确响应,然后你可以做一些什么是闭包?为什么要使用闭包?闭包是可以读取其他函数内部变量的函数:一个是前面提到的函数内部可以读取的变量,另一个是将这些变量的值一直保存在内存中。什么是冒泡?在对象上触发某种类型的事件(例如onclick事件)。如果对象为此事件定义了处理程序,则该事件将调用该处理程序。如果没有定义事件处理程序或者事件返回true,那么Thisevent将传播到这个对象的父对象,从内到外,直到它被处理(父对象的所有类似事件都会被激活),或者它到达了对象层次结构的顶层,即文档对象(有些浏览器是window)。比如你要向地方法院上诉,如果没有地方法院受理此类案件,当地相关部门会帮助你继续向上级法院上诉,比如从市级到省级级别,甚至到中央法院。终于把你的案子搞定了。HTML5CSS3有哪些新特性,删除了哪些元素?如何处理HTML5新标签的浏览器兼容性问题?HTML5不再是SGML的一个子集,主要是增加了图像、位置、存储、地理定位等功能。新功能包括:?绘制画布元素?媒体播放的视频和音频元素?本地离线存储localStorage长期数据存储,关闭浏览器后数据不会丢失;?SessionStorage数据在浏览器关闭后自动删除?语义更新好的内容元素,如article、footer、header、nav、section?Form控件、日历、日期、时间、email、url、搜索CSS3实现圆角、阴影,以及文字特效,增加更多的CSS选择器,多背景rgba,新技术包括webworker,websockt,Geolocation。删除的元素包括:?纯表达元素basefont、big、center、font、s、strike、tt、u;?对可用性有负面影响的元素frame、frameset、noframes。浏览器兼容H5解决方案:IE8/IE7/IE6支持通过document.createElement方法生成的标签。您可以使用此功能使这些浏览器支持HTML5新标签。浏览器支持新标签后,需要添加默认的标签样式,当然最好的办法是直接使用成熟的框架:如何重构页面?将“不使用CSS,大量使用HTML进行定位和布局,或使用CSS,但不遵循HTML结构标准的站点”改为“让标记回归标记的本意。通过在HTML文档中使用结构化使用CSS标记和控制页面性能,将页面的实际内容与其呈现的格式分开。”过程就是网站重构一个网站为什么要重构(网站重构的好处)a.快速地;b.降低带宽成本,节约成本;C。让您以更低的成本更高效地修改设计;d.帮助您的整个站点保持视觉一致性;e.更有利于搜索引擎检索(符合SEO规范);F。使站点更易于各种浏览器和用户编写CSS,使页面结构更加合理,提高用户体验,达到良好的页面效果,提高性能。前端页面的三层是什么,分别是什么?作用是什么?最准确的网页设计思想是将网页分为三个层次,即:结构层、表现层和行为层。网页的结构层是由HTML或XHTML等标记语言创建的。标签,即出现在尖括号中的词,描述了网页内容的语义,但这些标签不包含任何有关如何显示所讨论内容的信息。例如,P标签表达的语义是:“这是一个文本段落”。网页的表现层是由CSS创建的。CSS回答了如何显示相关内容的问题。网页的行为层负责回答内容应该如何响应事件的问题。这是JavaScript语言和DOM占主导地位的领域。什么是ajax,为什么要用ajax?答:AJAX是“AsynchronousJavaScriptandXML”的缩写。它指的是一种用于创建交互式Web应用程序的Web开发技术。Ajax包括以下技术:基于Web标准(standards-basedpresentation)的XHTML+CSS表示;使用DOM(DocumentObjectModel)进行动态显示和交互;使用XML和XSLT进行数据交换和相关操作;使用XMLHttpRequest进行异步数据查询、检索;使用JavaScript将一切联系在一起。为什么使用ajax:Ajax应用的优点是:通过异步方式,提高了用户体验,优化了浏览器和服务器之间的传输,减少了不必要的数据往返,减少了带宽占用。减少了一部分原本由服务器承担的工作,从而减轻了服务器在大量用户下的负载。
