03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,而后接下来的一个小时我一直在,注,册,帐,号。php
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,"您填写的信息有误,请重填"。而后跳转回注册页面,以此循环。我如今时常想,若是当时ajax能普及开来,我就能够省2块钱了。css
那么ajax是什么?html
首先ajax是一种技术。以往的网页交互方式,用户在点击一个按钮后,好比提交按钮,用户就要等待漫长的数据和服务器的交互,期间用户没法进行任何操做,只能点根烟。而ajax所作的,就是在向服务器发送请求的时候,咱们没必要等待结果,而是能够同时作其余的事情,等到有告终果咱们能够再来处理这个事前端
其实ajax技术早在1998年的时候就已经由微软实现了,然而直到2005年2月,Adaptive Path公司的Jesse James Garrett发表文章“Ajax: A New Approach to Web Applications”,人们读了后以为哎哟不错哦这个屌,这以后ajax才大规模普及开来。html5
ajax的出现,极大了提升了web的用户体验。时至今日,即便国内IT发展再怎么落后,全部网站的登陆注册也已经实现了ajax交互。用户点填写完信息后,页面不用刷新就能够知道信息提交成功与否,哪错改哪。java
另外ajax做为一种先后端分离的解决方案,也已经被国内大多数不很low的公司所采用,也间接致使了php等网页脚本语言的衰落。(来辩)node
早年的js编程,代码的效率是极其低下的,这点尤为体如今操做dom上,开发者想要给一个按钮添加事件,要写长长一大段重复的代码去获取到这个按钮,再写长长一大段重复的代码去添加事件。尽管老油条会将经常使用的操做封装起来,可是对于不会封装的新手,这无疑是很痛苦的一件事,尤为再加上各类各样的兼容。python
2006年,本着拯救菜鸟,让他们do more的宗旨,jquery诞生。jQuery诞生的意义,一是对ie6 7 8 及各类割据一方的浏览器作好了兼容,二是极大简化了dom操做,使开发效率大大提高。jquery很火爆,火爆的有些前端只会写jquery而不会写原生js的程度。时至今日,说jquery write once,see everywhere已经不为过了。jquery
jquery的另外一个意义(我认为)在于,它催化了人们对前端的兴趣与探索,相比linux,你用很低的成本,就能够写出一个让不懂编程的妹子说欧巴你碉堡了的效果,让人们以为哎哟(又)不错哦这个屌。此后大量的类库和基于jquey的插件雨后春笋般诞生,前端行业歌舞升平欣欣向荣,网页开发进入一个新时代。linux
天下武功出谷歌。在ie6,7,8的时代里面,尽管Firefox也缓慢的挑战ie的地位。但和2009年开始Google开始推广的chrome浏览器产生的颠覆性影响比起来,逊色不少。Chrome使用Apple的开源内核webkit,良好的设计标准和市场反应;促进浏览器快速迭代,让IE在windows10中完全消失。
chrome浏览器的推出,将简化前端的入门程度又推动了一步,其自带的调试工具好用又无脑,咱们能够利用其轻松的查看网络状态,加载顺序,进行断点调试等,同时谷歌的插件功能,又给开发者提供了极大便利。
目前chrome最新版开始采用blink内核,测试版本中,已经能够对css3动画进行追踪和调试。在我尚未想象到的时候,chrome已经实现了它。
一句话,没有chrome,就没有新中国,就只能用firefox了。
随着软件项目的迭代加快,项目版本工具也不断的演进,经历CVS, SVN,GIT。到目前为止CVS差很少已经从互联网行业慢慢消失,SVN做为文件和文档存储存在,由linux内核发明人Linus建立的版本工具GIT如今做为代码版本标准。Github依赖于git成为开发人员团队协做的社区!到2015年1月github上已注册的开发人员超过一千万,开源项目几千万。其中2014中国研发者在github上增⻓长最快。你几乎能够在上面找到一切你想要的代码…好比username..password..
OAuth1或OAuth2与以往的受权方式不一样之处是OAUTH的受权不会使第三方触及到用户的账号信息(如用户名与密码)。
产生背景:最多见的服务场景,用户须要使用两个不一样企业的服务,登陆验证A企业,下载内容;而后登陆验证B企业,上传内容到B企业服务,复杂又耗时。不管是用户,仍是A、B都会想要互通服务。这就产生了核实身份的需求。旧的用户名、密码机制会形成A/B企业有权限查看甚至修改对方的用户资源。为了达到确认身份、服务互通,Google、Yahoo、Microsoft牵头促使OAuth1.0产生。以后的OAuth2.0是各大互联网企业基于https安全的一次新规划。
目前最多见的应用场景主要在受权登陆上,如微信,qq,微博等等
Json虽然是2001年就产生的标准,但被普遍应用是在2008年以后各类Ajax应用、iPhone、Android设备流行以后。旧的服务体系可能是企业级,因此XML对java型的企业级服务定位有益。但对于流量限制,语义简单的API服务来讲,XML庞大、冗余、不易学又占带宽。
去年我刚工做的时候,后台给我返回一个数组,没有发言权的我在是要遍历这个数组仍是转化为json格式之间纠结了好久。
Json的普及,从另外一个角度体现了web开发的一个优点,无论你后台是java ruby php仍是python,你只要给我一个json格式的接口,我就能撑起整个地球。
敏捷开发打破了项目研发模式。在2010以后的WEB2.0时代,Html5盛行,前端工做被分离出去,PHP那种网页脚本的优点没那么明显,虽然在CMS和论坛模板上依然有优点。Django和Rails的最大优点在于,他让我的或两三个的小团队,实现整套产品成为可能。以Instagram为例,最初两个python工程师用django快速实现了服务端的全部功能,在用户增加时,再将大访问量和大数据量的服务独立出去。
尽管现实残酷,rails每况日下,IE8和rails谁先消失只是前后问题,但其提供的解决方案仍是被不少后生所效仿。人们都会记得这朵昙花。
2011年Twitter开源的网页端GUI框架。jquery兼容了不一样浏览器的js部分,bootstrap则兼容了不一样浏览器的css部分。甚至于说,做为一个后端开发,你无需了解css,无需前端,无需设计师,只要看一看bootstrap的文档,就能够搭起一个美观大方的后台管理系统。常见相似的GUI框架还有zurb的foundation,google的materialize,百度也曾出过一个名为GMU的移动端框架。
就我我的来讲,我并不喜欢这些gui框架,尽管他们简化了css,实现了一些很炫酷的效果,尽管我在项目中也用到过这些,尽管我不想认可我是绿茶。这些框架最大的缺点就是,千篇一概,全部的页面都是一个样子,同样的nav,同样的sidebar,同样的表单,连鼠标点上去放个光都如出一辙。就像我若是长了三条腿(虽然确实长了三条腿)别人会说我很别致让他们眼前一亮,但若是全部人都长了三条腿,web也就失去其魅力了。另外一个缺点是臃肿,一个css就走100多k的流量,其js插件又大都依赖jquery,忍心么。
固然,其为了解决响应式提出的栅格化html的思想仍是很值得借鉴的。
2009年以后IOS和Android的快速发展,致使WEB开发发生如下改变:
1. html5在移动浏览器上优先实现,Android和IOS设备全面支持html五、CSS3,加速了IE消失
2. 上网随时随地发生。鼠标点击、内容繁复的网页愈来愈简洁,响应式设计快速流行。
3. APP和服务器交互大部分和网页同样基于HTTP协议,webapp,hybrid app的概念被提出。
关于webapp,这里简单说下web相比原生的优点
跨平台:常说的一次编译,处处运行
免安装:打开浏览器,就能使用
快速部署:升级只需在服务器更新代码,而不像客户端须要更新版本
超连接:能够与其余网站互连,能够被搜索引擎检索
听起来刁刁的,这些优点却经不住推敲。首先,不一样系统的用户使用习惯是不一样的,ios用户返回按钮习惯在左上角,而安卓用户却习惯在屏幕最下方的位置,产品经理问,那放在哪儿。呵呵哒不知道。其次,曾经看过一个调查报告,问用户更喜欢用客户端仍是web端。
喜欢客户端的用户远远超过了web端。你问我喜欢什么,我也是喜欢客户端。你问我为何,我以为比较有安全感吧,并且更新版本让我以为很爽,颇有存在感,让我知道我并无被世界遗忘,让我知道大家产品在更新,在为我操心。另外超连接..我一个客户端要你seo干什么。这还没完,webapp的缺点还有一大把,最大的缺点莫过于没有GPU加速,想要实现一个复杂一些动画,真是要了浏览器亲命了。其次网页是单线程的,加载dom时会阻塞js,致使的结果就是,卡。一卡就烦了,烦了就关了,用户减一。
而hybrid就不一样了,hybrid app的意思是混合原生应用,将须要频繁更新的页面做为web放在远程更新。这是一个靠谱的解决方案,BAT有不少案例,如微信发布的JS SDK,掌上百度和淘宝客户端Android版;
固然这里边的坑有不少,有机会,我把我踩过的坑讲给大家听。
我纠结了一会node属不属于前端范畴的问题。我认为是属于的。
解决高并发一直是后台哥哥们乐于讨论的问题,好比我们的好近实时监控系统,理论上每一个链接都会生成一个新线程,每一个新线程可能须要 2 MB 配套内存。在一个拥有8 GB RAM 的系统上,理论上最大的并发链接数量是 4,000个用户。随着用户的增加,我们但愿监控程序支持更多用户,这样,就必须添加更多服务器。固然,这会增长业务成本,尤为是服务器成本。除了成本上升外,还有一个技术问题:用户可能针对每一个请求使用不一样的服务器,所以,任何共享资源都必须在全部服务器之间共享,到这里,技术就到了瓶颈。node诞生的初衷,就是为了解决这个问题。node解决这个问题的方法是:更改链接到服务器的方式。每一个链接发射一个在Node 引擎的进程中运行的事件,而不是为每一个链接生成一个新的 OS 线程,并为其分配一些配套内存。
nodejs属于服务器端语言,在先后端分离这场圈地运动中是前端的一个有利武器,同时在前端自动化上也提供了大量的可编程工具(grunt,bower,gulp等),淘宝百度对nodejs的热度一直很高,天然而然我认为这是一个趋势。去年美团成立了美团酒店的团队,选择了node做为后台语言,圈走了后台大部分的工做。我在想,前端js加上node再加上对UI的技能需求,之后是否是前端工程师是否是该叫全端工程师了。
P:我我对node只有粗浅的了解,也是之后但愿学习的方向,不辩。
大数据大概是过去几年最火热的名词,我一大批同窗据说数据挖掘年薪30万都嗷嗷嗷去作数据库了。
大多数时候,咱们在谈大数据其实都是在谈在海量数据下的数据挖掘、数据分析、智能推荐、实时分析等。不一样公司的技术方案不一样,我只列两个国内成功的案例:
• 京东个性化电商,场景包括基于行为、偏好、地域、时间、好友关系等维度,向不一样的用户推荐不一样的产品,不一样用户搜索产品排序也不一样…
• 百度地图东莞8小时迁徙图;百度搜索智能提醒
• 360手机卫士,电话号码防骚扰功能是经过用户的地域、身份、骚扰趋势,将标记的2.56亿个电话号码选出1000个和用户关联度最高的,写入用户手机的10k的文本里,达到不联网不作任何网络交互的状况下,为用户防骚扰
这是这几年被说烂了的一个词,人人都在说HTML5,问HTML5是什么,他们也说不清楚,就是酷,就是炫,就是酷炫。
在我看来,HTML5只是一个三人成虎的东西,它吸引的眼球远超过了它提供的功能,HTML5只是提供了一些新的API,就等于一个app从1.0升级到2.0增长了附近的人功能而已。并且其提供的API,也就是在移动端试一试水,在pc端由于兼容的问题,始终不能被明媒正娶。pc端的开发仍是以HTML4.0+CSS2为基准渐进加强。至于css3,它最被人关注的动画,也是flash玩剩下的东西。
移动端的飞速发展催化了HTML5的发展,HTML5的发展也促使各浏览器趋于标准化。
这条标准化路上,微信功不可没,1024,围住神经猫,淘宝十年,LEXUS NX这些融合了大量HTML5+CSS3元素的页面让人印象深入。
此外,微软抛弃IE代号,开发edge,各大浏览器厂商的不断标准化,HTML5草案定稿,ES6草稿的不断实现与完善,前端之路看起来是一条京畿坦途,我充满期待。
3D页游?WebOS? 虚拟现实?
最后,随着用户硬件性能的提高,网络带宽的愈来愈粗,传感系统,Retina,WebGL技术的日渐成熟,再加上O2O的蓬勃发展,上边这些会成为现实么?
via:http://www.cnblogs.com/sussski/p/4634595.html