angular 首屏加载优化_前端开发进阶之首屏加载慢需要服务端渲染吗?

JavaScript的兴起,ajax的大热更是让前端渲染更加成熟,前端渲染真正意义上的实现了前后端分离,前端只专注于UI的开发,后端只专注于逻辑的开发,前后端交互只通过约定好的API来交互,后端提供json数据,前端循环json生成DOM插入到页面中去。

SPA应用已成为主流,Angular、React、Vue三大框架已经占据前端开发的大半江山,但随着SPA的流行,弊端也随着出现,不仅首屏加载慢,而且不利于SEO,所以vue全家桶或者react全家桶,都是推荐通过服务端渲染来实现路由的。

下面让我们来了解何为服务端渲染

服务端渲染

1.概念

当用户第一次请求页面时,由服务器把需要的组件或页面渲染成 HTML 字符串,然后把它返回给客户端。客户端拿到手的,是可以直接渲染然后呈现给用户的 HTML 内容,不需要为了生成 DOM 内容自己再去跑一遍 JS 代码。

使用服务端渲染的网站,即“所见即所得”,页面上呈现的内容,我们在 html 源文件里也能找到。

2.利弊

好处:

首屏渲染快;

利于SEO;

可以生成缓存片段,生成静态化文件、节能(对比客户端渲染的耗电)

坏处:

用户体验较差;

不容易维护,通常前端改了部分html或者css,后端也需要修改。

3.和客户端渲染对比

无论是客户端渲染,还是服务端渲染,本质是一样的,都是字符串的拼接,将数据渲染进一些固定格式的html代码中形成最终的html展示在用户页面上。

因为字符串的拼接必然会损耗一些性能资源。如果在服务器端渲染,那么消耗的就是server端的性能。

如果是在客户端渲染,常见的手段,比如是直接生成DOM插入到html 中,或者是使用一些前端的模板引擎等。他们初次渲染的原理大多是将原html中的数据标记(例如{{text}})替换。

为什么使用服务端渲染

简单总结起来就是两点:

1、首屏加载快相比于加载单页应用,我只需要加载当前页面的内容,而不需要像 React 或者 Vue 一样加载全部的 js 文件

2、SEO 优化对于单页应用,搜索引擎并不能收录到 ajax 爬取数据之后然后再动态 js 渲染出来的页面。

事实上,很多网站是出于效益的考虑才启用服务端渲染,性能倒是在其次。

假设 A 网站页面中有一个关键字叫“前端性能优化”,这个关键字是 JS 代码跑过一遍后添加到 HTML 页面中的。那么客户端渲染模式下,我们在搜索引擎搜索这个关键字,是找不到 A 网站的——搜索引擎只会查找现成的内容,不会帮你跑 JS 代码,当然首屏加载也是影响用户体验极其重要的因素。

首屏加载慢需要用服务端渲染吗?

对于百度、简书、CSDN、知乎等网站的搭建,这种在网上一搜搜出一堆东西的网站,SEO做的很好,多少都用到服务端渲染。

服务端渲染成本是高昂的,但服务端渲染并非万全之策(服务器稀少而宝贵),关于首屏渲染体验的优化方案有很多,在不使用服务端渲染这个操作下,我们最好的处理方式就是找寻替代优化方案,如果业务场景是用户体验更为重要,且需要更好的SEO,服务端渲染是个不错的选择。

Node.js 做渲染,如果用vue的可以使用Nust.jsReact可以用Next.js。

打造自己的前端性能监控系统你需要了解这些,性能监控可以帮助解决首屏加载慢等性能问题。

最后

喜欢文章的小伙伴麻烦点赞、收藏、关注,欢迎留言交流,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值