济源专业做网站公司,精美网站,百度网站入口特效词,韩国vs加纳分析比分随着互联网产业的爆炸式增长#xff0c;与之伴生的Web前端技术也在历经洗礼和蜕变。尤其是近几年随着移动终端的发展#xff0c;越来越多的人开始投身或转行至新领域#xff0c;这更为当今的IT产业注入了新的活力。尽管Web前端技术诞生至今时日并不长#xff0c;但随着Web技…随着互联网产业的爆炸式增长与之伴生的Web前端技术也在历经洗礼和蜕变。尤其是近几年随着移动终端的发展越来越多的人开始投身或转行至新领域这更为当今的IT产业注入了新的活力。尽管Web前端技术诞生至今时日并不长但随着Web技术的逐渐深入今后将会在以下几方面发力。 1.Web移动终端开发。 2.JavaScript的兄弟们。 3.百花齐放的类库和框架。 4.工程化的Web前端开发规范。 Web移动终端开发 PhoneGap一个开源的开发框架使用HTML、CSS和JavaScript来构建跨平台的移动应用程序。它使开发者能够利用iPhone、Android、Palm、Symbian、BlackBerry、WindowsPhone和Bada等智能手机的核心功能包括地理定位、加速器、联系人、声音和振动等。除了在本地编译应用之外还可以使用PhoneGap提供的云端Build工具进行应用编译。也就是说只需要将用HTML5写好的应用上传到PhoneGap的云端服务器PhoneGapBuild即可将其编译成适合不同平台的应用。 前端知识图谱 SenchaTouch说到这里就不得不提一些面向移动端的WebUI库毕竟PhoneGap是一个工具要想基于Web技术构建完整的App必须选择一些适用的移动UI库。而最值得一提的是SenchaTouch它可以让WebApp看起来像NativeApp。美丽的用户界面组件和丰富的数据管理全部基于最新的HTML5和CSS3的Web标准全面兼容Android和iOS设备。PhoneGap昭示着一种开发趋势即App也可以使用Web前端技术来完成。而作为开发者最常用的UI工具箱SenchaTouch又进一步加速了这种趋势目前在淘宝已有大量的项目采用这种思路来搭建即在内置应用的外壳加上自定义的基于移动Web的UI库。相信在未来这种模式必会越来越流行。 Sencha Touch说到这里就不得不提一些面向移动端的WebUI库毕竟PhoneGap是一个工具要想基于Web技术构建完整的App必须选择一些适 用的移动UI库。而最值得一提的是Sencha Touch它可以让Web App看起来像Native App。美丽的用户界面组件和丰富的数据管理全部基于最新的HTML5和CSS3的Web标准全面兼容Android和iOS设备。PhoneGap 昭示着一种开发趋势即App也可以使用Web前端技术来完成。而作为开发者最常用的UI工具箱Sencha Touch又进一步加速了这种趋势目前在淘宝已有大量的项目采用这种思路来搭建即在内置应用的外壳加上自定义的基于移动Web的UI库。相信在未来这 种模式必会越来越流行。 Media Queries在CSS2时代如果你曾经为网站设计过打印版CSS那么就会明白CSS3 Media Queries的作用。不过CSS3的Media Queries比CSS2的Media Queries可以获取这些数据浏览器窗口的宽和高、设备的宽和高、设备的手持方向横向还是竖向和分辨率等。也就是说Media Queries提供了一种基于不同的平台写CSS的技术。这项技术在2011年初被推广开来至今已非常火热尤其是在Web页面仍占互联网流量大多数的 今天这种兼容技术能很快让网站兼容移动设备保证产品实现最快的跨平台的兼容性和多平台的可用性。 Zepto.js一个专为 Mobile WebKit浏览器如Safari和Chrome而开发的JavaScript框架。它标榜自己简约的开发理念能够帮助开发人员简单、快速地完成开发 交付任务。更重要的是这个JavaScript框架是超轻量级的只有5KB。Zepto.js的语法借鉴且兼容jQuery。目前已有不少网站开始基于 Zepto.js做应用因为在抛弃了IE浏览器的兼容性问题后Web开发会变得越来越纯粹体积更轻巧编码也更加愉悦。不可否认随着移动终端开发 越来越流行Zepto.js在未来将会有更加广阔的应用场景和空间。 Bootstrap: Twitter推出的一个开源的用于前端开发的工具包。它由Mark Otto和Jacob Thornton合作开发是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范由动态CSS语言LESS写成与CSS 框架Blueprint存在很多相似之处。Bootstrap一经推出便颇受欢迎一直是GitHub上的热门开源项目NASA和MSNBC的 Breaking News都使用了该项目。2012年第二季度Bootstrap发布了2.0版Bootstrap 2.0的一个重大改进是添加了响应设计特性在1.0中这是让很多开发人员抱怨的地方。而且为了提供更好的针对移动设备的响应式设计方 案Bootstrap 2.0采用了更为灵活的12栏网格布局。此外它还更新了一些进度栏及可定制的图片缩略图并增加了一些新样式。值得关注的是Bootstrap是一个 非常轻量级的框架2.0在压缩后只有10KB。Bootstrap为我们的网站快速搭建提供了不错的工具和思路这个工具集将拥有更旺盛的生命力。 JavaScript的兄弟们 CoffeeScript是一个借鉴Ruby编写的新编程语言创建者JeremyAshkenas戏称它是JavaScript的低调的小兄弟因为CoffeeScript会将Ruby编译成JavaScript而且大部分结构都相似。但不同的是CoffeeScript拥有更严格的语法。它的最大功绩就是将JavaScript硬绑的C/Java语法抛弃了改为采用类似Ruby/Python的语法。Ruby/Python本来就是深受Lisp影响的与JavaScript算是同门师兄它们的语法经过了实践考验非常适合函数式编程。这种优雅的语言独具魅力即将面世的2013版的淘宝首页即采用了CoffeeScript实现。 TypeScript是微软开发的JavaScript的超集TypeScript兼容JavaScript可以载入JavaScript代码然后运行。与JavaScript相比TypeScript进步的地方在于加入注释让编译器理解所支持的对象和函数编译器会移除注释不会增加开销增加一个完整的类结构使之更像是传统的面向对象语言。由于JavaScript只是一个脚本语言并非用于开发大型Web应用所以没有提供类和模块的概念。而TypeScript扩展了JavaScript实现了这些特性能更好地支持大规模JavaScript应用开发吸引了不开发者。但要注意虽然TypeScript有微软做后盾看起来很有保证但目前提供的只是早期的预览版本TypeScript并不像它的网站看起来那样精美最终版本可能会在一年后ECMAScript6发布会确定现在的版本只是个开发预览版。因此TypeScript今后发展如何还需要进一步观察。 此外在服务器端Node.js越来越流行。如今Node.js不仅作为处理高并发请求的中间层解决方案还因其灵活的语法和丰富的底层API越来越多的人开始用它来写工具尤其是之前基于Ant或者Java的一些工具如今都有了Node.js的版本。 如此看来Node.js在命令行工具领域有着更加广阔的应用场景甚至可以代替Perl或者Ruby这些传统的动态语言。在淘宝Node.js已有非常多的应用场景例如在数据部门Node.js被用作处理高并发场景下的容池专门吸收高并发的请求甚至能够保持和客户端的长链接而这在之前则需要花费很高昂的成本例如Comet技术等。此外淘宝的开源前端类库KISSY也可以直接运行于Node.js环境这样就可以在命令行运行KISSY代码很多前端代码就有机会采用自动化测试等提高生产效率。再者淘宝内部的开发工具链也已大部分采用Node.js来构建了。 百花齐放的类库和框架 SeaJS是由支付宝前端高级技术专家王保平玉伯开发的一个遵循CMD规范的模块加载框架可用来轻松愉悦地加载任意JavaScript模块和CSS模块。SeaJS非常小巧小巧在于其压缩后体积只有4KB而且接口和方法也非常少。SeaJS有两个核心模块的定义和模块的加载。SeaJS可以加载任意JavaScript模块和CSS模块能保证你在使用一个模块时已将所依赖的其他模块载入脚本运行环境中。SeaJS可以让你享受写代码的乐趣不用去管那些加载的问题。毕竟现在网页的可维护性和性能问题一样严峻体现在文件太多不利于维护前端后端都一样HTTP请求过多当然这个可以通过合并解决但如果没有后端直接合并那么人工成本会非常大。用SeaJS就能非常好地解决这些问题。SeaJS遵循CMD规范因此可以很方便地书写模块。目前已经有越来越多的人采用CMD规范来开发项目了。 最近微软已经正式发布了Windows8操作系统Windows操作系统的风格已经完全变成了磁贴状的MetroUI。对于微软来说这是一个巨大的改变而且所有微软的平台包括桌面、平板、移动端及其网站都使用这个UI风格。 MetroUICSS是一个非常完整的创建Metro风格的网站框架。它自成体系但也可以与其他框架一起使用。使用LESS创建并且拥有网格系统、排版样式、表格、按钮和图片。同时也拥有内建的JavaScript组件帮助你生成片状、菜单、边栏、进度条和提示等是一个非常好用的框架。随着Windows8的进一步流行这种风格的CSS类库一定会成为一种趋势。 Hype是一个小巧的工具是MacAppStore新上架的一个HTML5创作工具其长处是可以在网页上做出悦目的动画效果无须Flash插件。开发该应用的公司Tumult由两个前苹果工程师创建并获得了YCombinator的投资。由于公司的联合创始人之一JonathanDeutsch曾担任Mail.app后端的技术主管因此他在接受PaulHontz的TheStartupFoundry访谈时谈到公司创始是为了解决HTML5创作工具缺乏的问题。可以说Hype是第一个可用的创作HTML5产品的可视化工具具有里程碑式的意义。随着硬件性能提升HTML5的应用程序更加倾向于被工具生成而不像传统意义上由工程师“切”出来。因此工具化是一个方向不管HTML5是否真的能在移动终端扎下脚跟这种方向是值得坚持的。毕竟HTML5的应用开发现在还处于原始社会。 iScroll.js是使用原生JavaScript编写的一个模拟滚动效果的小类库不依赖于任何JavaScript框架。旨在解决移动WebKit系浏览器的区域滚动问题兼容MobileSafari、Android默认浏览器、Safari、Chrome、Firefox5、Opera11、IE9及其他WebKit核心浏览器。最新版本为iScroll4。这个小库一问世就备受关注因为它不仅可以在PC端完美模拟滚动效果在移动终端里对触屏事件的支持也堪称完美。 iScroll4是2011年底问世的2012年在移动终端产品开发中大放异彩在淘宝的诸多产品中都用到了这个JavaScript库。iScroll是小而精的经典作品名字也带着苹果范儿。但美中不足的是只能使用ID调用。不过这个小特性不是什么大问题可以通过二次封装来解决。期待iScroll4在移动终端里有更多精彩的表现。 前端MVC在2011年是比较火的话题随着越来越多的人开始尝试使用诸如JavaScriptMVC和Backbone.js这些MVC类库更多的产品也看起来更像“软件”而非“网页”。但由于前端环境的复杂性我们也渐渐发现“这种”MVC并非完美只能应用于“基于数据驱动”的场景而对“基于事件驱动”的场景却没有太好的解决办法。目前淘宝有很多产品在尝试使用“有限自动机”来弥补MVC在这方面的不足。因此新场景下的MVC还需要更深入的提炼。 工程化的Web前端开发规范 2012年关于前端开发编码规范的讨论愈来愈多。国外和国内的顶尖开发者几乎同时对编码规范产生了很大兴趣前Yahoo!首页首席前端工程师N.C.Zakas在他那本《高可维护的JavaScript》书中也提到规范在团队协作过程中的重要性。而如下这两个方面是值得我们探讨和深思的。 AMD与CMD规范之争随着CommonJS的进一步普及CommonJS规范在标准的模块开发领域发挥着越来越重要的作用而CommonJS在浏览器端的难以实现却为这份规范增添了一丝变数。本质上讲CommonJS是一种用于同步加载JavaScript代码的API规范非常简单优雅。为了在浏览器端实现这种机制则不得不加入了一层异步回调这便是AMDModules/Asynchronous-Definition。RequireJS实现了这个规范而Dojo也将马上完全支持Dojo1.6。规范本身非常简单甚至只包含了一个API。玉伯在开发SeaJS的过程中更多地保持了CommonJSModules规范的风格即CMDCommonModuleDefinition。较之AMDCMD没有采用单一的API来适用于多个功能而是根据不同功能定义不同的API。我认为两者在完备性上是基本一致的但在社区理念和编程风格上有所差异开发者可以根据自己的偏好来选择使用AMD还是CMD编程风格。 Java语言编码规范对于前端开发编程规范有非常大的影响。在Zakas的《高可维护性JavaScript》一书中提到了五种JavaScript编程规范都和Java语言编码规范有着类似的渊源Crockford编程规范、jQuery核心风格指南、SproutCore编程风格指南、Google的JavaScript风格指南和Dojo编程风格指南。不管是哪种规范都强调了编码风格一致的重要性这也可看出前端团队开发越来越看重规范JavaScript的灵活性需要某种程度的限制。 总之通过上面的阐述我们可以看到前端技术的不断进步和推陈出新也能够体会到项目过程的工程化解决方案的轻量化库和框架的多元化知识结构的体系化这种趋势在今后会变得越来越明显也昭示着前端技术的发展方向。 说到前端技术知识结构的体系化建设这是我这些年来一直都在做的事情在2011年也画了一张图来说明我的观点——前端技术体系的建设是一项长期的任务。毕竟前端新技术新知识层出不穷对于经典的知识结构的整理也很有挑战性但这项工作终究需要有人去做为新入道的人指出一个大致的方向。对于前端工程师的成长问题我也写过一篇长文“前端开发十日谈”帮助新人们解惑。转载于:https://www.cnblogs.com/fedjs/p/4997473.html