JavaScript为什么强大,BS/CS,前后端分离演变史

JavaScript王者归来

JavaScript最初只是一个脚本语言,为了给浏览器渲染的页面一点绚丽的效果,这时MVC正在大行其道,前端完全依赖后端
第一次变革是在2005年Google推广Ajax,使得人们第一次意识到了JS的强大,能够使网页异步无刷新显示数据
这时前端由于有了交互的本领,已经可以叫做App了,所以叫做Single Page Application,SPA单页面应用时代
于是前端也出现了和后端一样的分模块的MVC架构,处理后端传过来的数据渲染给用户,全程用js操作
这个时代涌现的最有名的框架就是JQuery
但此时js还是局限在浏览器平台,速度也不够快,也就仅此而已吧
第二次变革是NodeJS的出现,这是一次质的飞跃
它结合了V8引擎(使得JS速度达到C++级别),有了速度就有能力承载更多功能
又增加了对操作系统访问的API,使得JS可以脱离浏览器,开发PC应用,服务器应用,移动端应用,极大扩展了应用范围

互联网架构演变

最初的编程架构,是分为BS和CS的,CS就是写好了全部代码,只在客户端跑,应用范围很窄
BS就是所有代码都在服务器跑,当客户端需要时,生成好网页+数据交给客户端,符合互联网思想
但这种模式带来一个问题:服务器极为重量,客户端又极为轻便,如果能利用客户端的性能就好了
因此就需要将CS和BS加以结合,核心思路就是转移一部分服务器的功能到客户端
由于JavaScript的王者归来,有了Node,使得这一构想变成了可能
现在客户端只用请求一次服务器,服务器就将所有js代码返回给客户端,所有交互类的操作都不再依赖服务器
因为js速度快了嘛,客户端完全可以hold住大量交互代码
客户端只有在需要服务器的数据时才会使用json通信一下,其他时间都在客户端利用js操作、暂存数据
这样就极大减轻了服务器压力,不再承受海量操作逻辑这种没用的交互请求
因此,我们称这种前后端平衡代码的、仅仅通过json+ajax交互必要数据的模式为前后端分离
现在的Angular、React、Vue都是这种框架,它们写的已经不能叫做网页,而是一个App
也就是用这些框架已经开发好了一个类似CS的应用,发给用户
用户的浏览器,就像一个操作系统,运行了这些App
这些App通过Ajax异步和服务器交换数据,看起来是实时交互的,也叫MVVM模式

HTML5的出现

HTML5并不是用来写网页的语言,而是一套技术,提供了许多系统原生的API标准
只要遵循这套标准,结合对应框架,HTML5可以用来写任何平台的应用
比如遵循HTML5,结合上面的前端框架,可以用HTML5技术写Web应用,把App嵌在浏览器中
结合Electron框架,可以用HTML5技术写跨平台的PC应用,运行在MacOS、Linux、Windows
结合Hybrid的框架,可以用HTML5技术写跨平台的移动端应用
甚至可以写虚拟机内核、大型3D游戏等等
这充分说明,HTML5这一套技术实在是太强了,JS真是天下第一语言

你可能感兴趣的:(前端)