奇酷教育 · 行业动态

WEB是个90后!来源:m.qikuedu.com

  “
 
  WEB是个90后!——

 
  Tim Berners-Lee(万维网之父)
 
  故事要从1990年12月说起。
 
  那一年,万维网之父蒂姆·伯纳斯·李开发出了世界上第一个网页浏览器。
 
  他创造了超文本标记语言(HTML),并创建了历史上第一个网站。
 
  1991年8月,由万维网之父Tim Berners-Lee发布的第一个静态页面诞生了!
 
  ——我们的旅途从此开始。

 
  静态网页时代
 
  早期的静态网页,只有最基本的单栏布局,HTML所支持的标签也仅有。后来为了丰富网页的内容,
标签诞生了。
 
  静态网站只能够根据用户的请求返回指向的网页,除了进行超链接跳转,没办法实现任何交互。

 
  此时,人们想要:
 
  网页能够动态显示;
 
  直接使用数据库里的数据;
 
  网页实现一些用户交互;
 
  让页面更美观。
 
  JavaScript的诞生

 
  1994年,网景公司发布了 Navigator 浏览器,但他们急需一种网页脚本语言,以使浏览器可以与网页互动。
 
  同年,万维网联盟(W3C,World Wide Web Consortium)成立,超文本标记语言(HTML,Hyper Text Markup Language)正式确立为网页标准语言。
 
  1995年,网景公司的 Brendan Eich 迫于公司的压力,只花了十天就设计了 JS 的最初版本,并命名为 Mocha。
 
  后来网景公司为了蹭 Java 的热度,把 JS 最终改名为 JavaScript。但实际情况是,网景公司和Sun公司结成联盟,才更名为 JavaScript。
 
  从此网页有了一些简单的用户交互,比如表单验证;也有了一些JS为基础的动效,如走马灯。
 
  但是让网页真正开始进入动态网页时代的却是以 PHP 为代表的后端网站技术。

 
  CSS
 
  美观是所有人的追求。
 
  HTML诞生以来,网页基本上就是一个简陋的富文本容器。由于缺少布局和美化手段,早期网页流行用table标签进行布局。
 
  为了解决网页“丑”的问题,Hkon Wium Lie 和 Bert Bos 共同起草了 CSS 提案,同期的 W3C 也对这个很感兴趣。

 
  为了解决 CSS 兼容性的问题,网景公司甚至还将 CSS 用 JS 来编写。
 
  CSS 从诞生开始就伴随着大量的bug,不同浏览器表现不同坑害了无数的程序员。
 
  今天我们能用上相对靠谱的 css,不得不说这是一个奇迹。
 
  动态网页技术
 
  PHP 就像给网络世界打开了一扇窗。
 
  1995年,Rasmus Lerdof 创造的 PHP 开始活跃在各大网站,它让 Web 可以访问数据库了,PHP 实现了人们渴望的动态网页。
 
  可以用数据库作为基础来展示网页内容;
 
  可以实现表单和一些简单交互;
 
  再也不用编写一大堆静态页面了。

 
  AJAX
 
  而当一些基础的需求被满足之后,动态网页技术带来的不足也渐渐暴露出来:
 
  总是刷新;
 
  网页和后端逻辑混合;
 
  有大量重复代码无法复用。
 
  然后AJAX站了出来。
 
  AJAX,Async JavaScript And XML,于1998年开始初步应用,2005年开始普及。
 
  AJAX的广泛使用,标志着Web2.0时代的开启。
 
  Google 研发出的 V8 引擎极大的提升了 JS 的运行效率,NodeJS 才有机会诞生,前端才能走向全栈。
 
  SPA
 
  AJAX,Async JavaScript And XML,于1998年开始初步应用,2005年开始普及。
 
  2008年HTML5草案提出,各大浏览器开启良性竞争,争先实现HTML5功能。
 
  由于HTML5带来前端代码复杂度的增加,前端为了寻求良好的可维护性和可复用性,也不得不参考后端MVC进行了设计和拆分。
 
  后来出现了三大前端框架:
 
  Vue(2014)、React(2010)、AngularJS(2009)。
 
  后端不再负责模板渲染,前端和APP开始对等,后端的API也可以通用化了。
 
  前后端终于得以分离。

 
  Server Side Render
 
  Server Side Render,服务端渲染,简称SSR,又称服务端同构、直出,一般使用NodeJS实现。
 
  这里的服务端渲染和以前的不一样,SSR会利用已经“脱水”的首屏数据来渲染首屏页面返回给客户端,到了浏览器再注入浏览器事件,并且保留单页应用的能力,对SEO非常友好。
 
  大多数时候SSR体验会更佳,因为服务端承担了大部分渲染工作,这也导致服务端负载变高。但在业务复杂的情况下,SSR首屏请求的接口数很多,导致返回HTML变慢。
 
  SSR不能很好的应付业务复杂的情况,首屏要加载的东西还是太多了。所以我们要怎样让用户感知到的白屏时间变短呢?
 
  减小加载体积;
 
  减少接口请求数;
 
  PWA缓存;
 
  分块渲染;
 
  …
 
  IMWEB的企鹅辅导落地了 SSR + PWA 之后,达到了几乎秒开的程度。
 
  NodeJS
 
  说完了 SSR,必须说一下 NodeJS。
 
  2010年 NodeJS 正式立项到现在已经11个年头了,NodeJS 的诞生来自于 Ryan Dahl(下图) 的灵感。

 
  他想以非阻塞的方式做所有事情,用完全异步方式可以处理非常多的请求(高并发)。
 
  NodeJS 的出现让前端向全栈的发展迈出了重大的一步。
 
  未来
 
  未来,浏览器真正的对手不再是浏览器,而是小程序这样结合了APP和网页优点的新兴技术。
 
  (本文作者:charryhuang,腾讯 CSIG 前端工程师)

推荐课程

* * * *

添加导师QQ:3053383067;2165190773在线报名
全国统一服务热线:400-807-8991