Web 技术栈发展回顾

静态网页阶段

最初面向大众的互联网应用一开始应该是从电子邮件开始的,浏览器承载的网站慢慢进入大众的视野,已经是1990年的事情了。在1990年的12月25日,Tim Berners-Lee在他的NeXT电脑上部署了第一套“主机-网站-浏览器”构成的Web系统,这可以说是BS 软件的开端。到1994年11月,鼎鼎大名的Navigator浏览器发布发布了,到年底W3C在Berners-Lee的主持下成立,标志着万维网进入了标准化发展的阶段。 这个阶段的网页,只是静态网页,内容不会主动更新。

 

动态网页技术阶段

怎么让网页动起来呢? 1995年,NetScape公司的工程师Brendan Eich设计了javascript脚本语言 ,并集成到navigator2.0 浏览器中。 JS的出现,让网页开始能做一些简单的动态效果,网页开始有了交互感,一些广告,跑马灯等页面特效可以在浏览器中实现了。

但是会动的网页不等于动态网页, 真正的动态网页是从动态网页是从ASP,PHP,JSP 等服务端页面脚本技术的出现开始普及的。一大批的服务端脚本技术出现快速的推动了互联网服务的发展,浏览器页面的交互越来越复杂,承载的业务越来越多,人们开始反思如何才能更好的对动态网页进行维护。

 

MVC 时代到来

严格的来说,因为动态网页脚本本身大部分的业务还是直接写在页面脚本中的,比如在JSP,ASP,PHP页面中都曾经有过一段直接在页面上访问数据库的代码,在初期还上尚可接受,但是禁不住业务的快速叠加,页面脚本代码很快就变得难以维护。

人们探索的答案就是:进行分层,让之前页面脚本中的各种职责的代码分别独立出来,JSP等页面模板只负责展示页面数据(view),具体的业务逻辑后置,作为一个个的控制器(controller),而承载业务数据的代码结构就作为模型(Model),这也就是MVC 的由来。 在2010年以前相当长的一段时间内,MVC 基本是WEB 开发的标准技术。虽然前端领域也早在2004年就出现了ajax的动态异步请求技术,但是一直以来都只是作为页面局部优化,改善用户体验技术的一部分,并没有对MVC 的开发方式产生颠覆式的影响。

image.png

 

HTML5 出现,Node JS 横空出世

HTML5的技术标准草案是在2008年1月22日 ,由W3C正式发布的。在HTML5 技术标准草案发布后,各个浏览器厂商都在对HTML5的支持上展开了如火如荼的竞争,逐渐形成了现在fireFox ,Chrome ,以及Safari 三足鼎立的局面。2014年10月28日,W3C正式发布HTML5.0推荐标准。

Chrome 浏览器是基于V8 javaScript引擎研发的。在V8 引擎的基础上,2009年,Ryan Dahl开发了基于事件循环的异步I/O框架-Node.js。Node js 突破了人们对 javaScript 只能运行在浏览器端的认知,原来javaScript 也可以用来做服务端程序。 Node.js也催生了node.webkit等项目,拓展了javascript开发跨平台的桌面软件的能力。

现如今的HTML5已经深入到了PC 网站以及各个移动端的网站以及App中,成为了我们交互的主流,各种前端框架层出不穷,前端工程师也在2014年成为一个独立的岗位。

 

前端的再进化: MVVM

H5 的发展快速推动了前端技术栈的发展,到2015年,人们能看到的网页效果和10年前,有了翻天覆地的变化。 尤其是移动互联网时代的到来,让人们看到H5的巨大潜力,前端页面的的重要性与日俱增,随之而来的还有前端代码复杂度的再次提高。

为了解决日渐复杂的前端工程,人们再次开始在前端的技术栈中开始分层,MVVM 出现了。MVVM 即:Model-ViewModel-View-Controller,在mvc 中间,又加入了一层: ViewModel ,这似乎又验证了那句话: 计算机科学中的所有问题都可以通过引入一个间接层得到解决。ViewModel 解决的了前端代码中大量调用相同的 DOM API,处理繁琐 ,操作冗余,使得代码难以维护的问题,有了ViewModel ,双向数据绑定在框架层得到实现, 前端再也不用更新Model 还要再手动更新view了。这也是如今,前端技术领域Vue,react 等技术栈层出不穷的一个原因。

image.png

前后端分离

前端技术栈的发展逐渐让前端开始朝着工程化的方向发展,前端再也不是以前MVC 时代,html 代码和后端的代码在一个工程中共存了。前端工程师,后端工程师的分工也越来越明确,前端写页面,后端写接口逐渐成为了现在的主流开发方式(也许国内是这样的,国外不大清楚)。

参考链接:https://www.cnblogs.com/luwanlin/p/11228147.html

https://www.cnblogs.com/goloving/p/8520030.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值