当准备做前后端分离时,我们在考虑什么?
Posted 前端之巅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当准备做前后端分离时,我们在考虑什么?相关的知识,希望对你有一定的参考价值。
在远古互联网时代,可以说 web1.0 时代,根本是不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、php 等工程师在服务端生成,浏览器负责展现,后来逐渐发展到后端主导的 MVC 的模式,相信如果是做 Java 的同学一定不会陌生,Model、View、Controller 基本上是每个后端开发人员必知的。
再后来随着大前端的崛起,出现了由前端主导的 SPA 模式,以及 Node 带来的全栈时代,下面我们就分别介绍 SPA 和 Node.js 这两种前后端分离模式都有哪些优缺点。
SPA 全称是 Single Page Application,使用前端路由的方式代替后端的 controller,并使用前端模板代替后端的模板引擎渲染,使用 restful api 实现与后端的数据交互。在这个方案中,前后端的交互被转换成了纯粹的 http 方式的 JSON 串交互。
后端可以专注于业务逻辑,前端对页面有完全的掌控。也就是说所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的;
前端可以独立开发,后端返回纯 JSON ,前端想要模拟请求响应的话,只需启动一个纯静态的服务器,响应 JSON 格式的 html 即可;
用户体验更好
SPA 需要前端处理很多业务层的数据,增大了复杂度
首屏加载慢,等所有 js 加载完才能出首屏
SPA 的页面完全由前端 javascript 渲染,无法有效地被搜索引擎抓取
虽然 SPA 解决了很多的问题,但依旧有很多不足之处,随着 Node.js 的兴起,JavaScript 开始有能力运行在服务端。它利用了谷歌的 V8 JavaScript 引擎,使得在服务器端运行 JavaScript 成为可能,这意味着可以有一种新的研发模式。
利用 Node.js 实现前后端分离的核心是使用 Nodejs 搭建一个中间层,负责和后端的数据交流以及前端的页面渲染,可以有效实现前后端的解耦。前端可以更加专注于视图层,而让更多的数据逻辑放在 Node 层处理。
分工明确,后端服务化,Node.js 层处理接口用户相关的页面响应及数据交换;
可组合性,后端服务化,Node.js 负责组合拼装,实现接口可复用率;
SEO 的场景可以在服务端同步渲染,完美解决了 SPA 在这方面的缺陷。
随着前端的丰富,前后端分离已经是必然的一个趋势。各种东西如雨后春笋一般,层出不穷。而 node.js 的出现,是前端真正意义上变成了大前端。回首 node.js 这门语言的发展,起初作为一门后端语言,但是无心插柳的成为了前端工程师提高效率的工具,成为大前端发展的基石。
应对海量的数据流量以及访问,保持系统的高可用性以及高性能是现在的系统第一需要面对的问题。
基于此,12 月 9-10 日,在北京举办的 ArchSummit 全球架构师峰会 - 深度培训上, 来自 LinkedIn 的薛君凯老师及京东物流部架构师王宝令老师,将分别为大家带来快速构建高效分布式应用、及基于 OpenResty 的高性能网关核心设计。
大会【深度培训系列】为极客邦企业培训与咨询部特设服务项目。2 天闭门会议,小班实战,高效深度学习,一线大咖,零距离交流,解决技术痛点,研讨避坑指南。
深度培训火爆现场-学员讲师互动答疑
深度培训火爆现场-实战演习
以上是关于当准备做前后端分离时,我们在考虑什么?的主要内容,如果未能解决你的问题,请参考以下文章