跳到主要内容

服务架构的选择

4 分钟阅读

概述

随着前端框架迅速发展,前后端分离和单页应用已成为开发行业的大趋势。它们带来了更好的开发效率、更灵活的架构设计以及更好的用户体验。

但同样的,单页面应用也有着一些不容忽视的缺点,如何通过优化不同使用场景架构来解决这些问题,也是当代开发者需要面临的一个挑战。

开始

在这个以流量为王的时代,单页面应用因为页面是由 JavaScript 实时生成的,这对于只默认爬取网页源代码,不执行JS逻辑的爬虫来说,意味着如果你的内容是通过JS加载,则爬虫爬取不到。

虽然谷歌更新了爬虫策略,对单页面网站的爬取进行了专门的优化。但是并非所有的搜索引擎都能很好地进行单页面网站的爬取,加上国内的搜索引擎生态,作为国内最大的搜索引擎的百度仍然不能很好地支持单页面的爬取,这使得国内开发者在进行单页面应用的开发时,对于 SEO 的优化始终是一个绕不过去的课题。

那肯定有人说:“那我写需要搜索引擎爬取的网站时候使用多页面进行开发,不需要搜索引擎收录的再用单页面不就行了吗? ”

虽然确实可以这样做,但是之所以单页面应用成为前端开发的主流,正是因为 Vue 和 Angular 这样的前端框架提供了丰富的工具和组件,简化了前端开发的复杂性,加上其强大的渲染能力、数据绑定和组件化等特性,使得开发人员可以更高效地构建现代化的用户界面。

无论是对比开发效率、性能开销还是项目规模,单页面应用相较于多页面应用都有着无可比拟的优势。也正是如此,为了迎合国内搜索引擎的生态而放弃使用前沿的技术,颇有点因噎废食的感觉。但同样,作为开发者的我们很难改变国内搜索引擎对单页面网站的态度。

那么既然无法改变环境就学会适应环境,让单页面应用也支持服务端渲染也是一个不错的选择。通过在服务器中实时运行单页面应用,在用户访问时将渲染好的单页面再发送给用户,这样保证了搜索引擎也能很好地识别网站内容,也保留了单页面开发的优势。虽然缺点可能就是加大了服务器负载,但也不是太大的问题。

同时我们还要知道,任何事都不是绝对的,并不是用了服务器渲染就不能用客户端渲染了,这二者可以相结合,通过在每级路由进行灵活的配置,实现混合渲染。这样指定哪些地址使用客户端渲染,哪些地址使用服务器渲染,可以最大化发挥服务器和客户端的性能,甚至解决单页面首屏加载慢的问题。

不同的应用场景可以选择不同的服务架构的搭配,像是搭建博客网站,为了更好地支持 SEO ,往往需要在服务器中进行页面的渲染。但是如果是一个后台管理系统,那么使用单页面来进行交互,会是一个非常优质的选择。

客户端渲染

常见使用场景:后台管理系统、游戏。

使用需求:不需要 SEO、节省服务器性能、更快的响应速度。

劣势:不能很好地被搜索引擎收录。

服务端渲染

常见使用场景:博客网站、媒体网站。

使用需求:需要 SEO。

劣势:增加了服务器性能的开销、新增功能需要重新打包发布。

混合渲染

常见使用场景:游戏网站、购物网站、工具类网站。

使用需求:需要 SEO、新增功能可以不重新打包发布。

劣势:增加了项目复杂度。

评论
0条评论

添加新评论

昵称
邮箱
网址