浅析客户端渲染(CSR)与服务端渲染(SSR)

本文详细介绍了服务端渲染(SSR)与客户端渲染(CSR)的区别,包括它们的工作流程和优缺点。预渲染(Prerendering)提供静态页面以加快首屏展示,而同构渲染(Rehydration)结合了两者优势,适用于SEO需求和快速首屏加载。在实际项目中,根据需求选择合适的渲染方式至关重要。
摘要由CSDN通过智能技术生成

最近刚好公司有项目需要用到服务端渲染,于是花了些时间了整理了关于服务端渲染与客户端渲染的知识,现在记录下来,希望能帮助大家提升对浏览器渲染,服务端渲染的理解,在项目选型上做出正确的决策。

本文会涉及这几个关键词:

  • 客户端渲染(client-side rendering)
  • 服务端渲染(server-side rendering)
  • 预渲染(Prerendering)
  • 同构渲染(Rehydration)

为了更好的理解客户端,服务端渲染我们要抛出一个老生常谈的面试点,浏览器输入一个url地址到页面显示,这个过程经历了什么?

客户端渲染(client-side rendering)

在这里插入图片描述
基于上面的图,我给大家总结一下,大致过程就是 :
用户输入地址,客户端向服务器发送请求
=> 服务器传给浏览器相应的网页文件
=> 浏览器解析文件
=> 遇到ajax请求则向服务器再次请求一些数据
=> 服务器再次向浏览器发送相应的数据
=> 浏览器拿到ajax请求返回的数据后,将数据渲染在页面上

可见客户端请求需要经历这么繁杂的步骤,整个过程下来也需要花费不少时间。这里应该有人会说,有没有一种方法能够能够一次性拿到渲染好的数据,客户端直接进行渲染?答案是有的,服务端渲染!

服务端渲染(server-side rendering)

在这里插入图片描述
同样的,看完图我给大家总结一下,服务器渲染的步骤就是:
客户端向服务器发送一次请求
=> 服务器接收请求,并在服务端操作网页文件,将对应数据导入文件
=> 服务器在服务端渲染好整个网页,发送给客户端
=> 客户端接收服务器发送过来的网页文件,不需要做任何操作,直接呈现

通过上面两种渲染方式的对比分析,可以看出服务器渲染的方式对比客户端渲染少了二次请求数据等步骤,页面呈现更加干脆,浏览器直接拿到数据展示就可以了。

预渲染(Prerendering)

预渲染是指用户请求之前,页面已经合成好了,服务端无需再次合成页面,直接将页面返回给客户端。也就是静态页面。对于用户来说,预渲染的体验和服务端渲染体验类似,首屏展示速度比客户端渲染快。

同构渲染(Rehydration)在这里插入图片描述

同构渲染,实际上就是把CSR和SSR的优势结合起来,让同一套代码在服务器上跑一遍,生成首屏内容,然后再在客户端跑一遍,绑定事件。这样既提供了更快的首屏速度、更好的SEO支持,又能避免对服务器带来过大的负载。
关于同构渲染,业界已经有成熟的解决方案,基于react的nextjs以及基于vue的nuxtjs,他们都是神级的同构框架,我们只需要简单的二次封装就定制符合业务的服务端渲染框架。如果是一个新的项目,要实现SEO,解决白屏等问题,则可以考虑直接使用此类框架搭建。

客户端渲染(CSR) VS 服务端渲染(SSR)在这里插入图片描述
总结

现在想必对客户端,服务端渲染有一个整体印象了吧。其实一般的页面中,两种渲染是相结合着使用的,因为我们会有些数据不想过早的传过来,想要被用到时再去拿数据,同时也不想被爬虫那么轻易的爬取,而且也不需要被搜索引擎搜索并展示,我们就可以用客户端渲染。但有时,我们想让我们网页的数据被搜索引擎搜索到,能让用户在使用搜索引擎的时候,查找到我们的数据信息,我们就可以使用服务器渲染。
关于客户端,服务端渲染的概念我就说这些,大家有什么疑问可以楼下评论去探讨探讨~

### 回答1: 服务端渲染(Server Side Rendering,简称 SSR)是一种将应用程序的 HTML 和 CSS 部分渲染到服务器端,再将渲染结果发送给客户端的技术。这样做的目的是为了提高首屏加载速度,并且在某些情况下改善 SEO。 传统的客户端渲染(Client Side Rendering,简称 CSR)技术中,客户端接收到的是一段空白的 HTML 文档,再通过 JavaScript 来动态渲染页面。这种方式对于用户体验来说不够优秀,因为首屏加载需要等待 JavaScript 执行完成。 服务端渲染的技术能够解决这个问题,因为客户端接收到的是一个完整的 HTML 文档,能够立即呈现。用户在操作页面时,再通过 JavaScript 来完成剩余的渲染和交互。 服务端渲染并不适用于所有场景,在选择是否使用 SSR 时需要考虑到应用程序的特定要求和需求。但对于需要提高首屏加载速度和改善 SEO 的应用程序来说,服务端渲染是一个不错的选择。 ### 回答2: 服务端渲染(Server-Side Rendering,简称SSR)是指在服务端动态生成页面内容,然后将渲染好的页面传输给浏览器进行展示的一种网页渲染技术。 传统的客户端渲染,即前端渲染,是指将数据请求发送给服务端,然后由浏览器的JavaScript代码异步获取数据,再将数据和模板进行渲染生成页面。这种渲染方式可以实现灵活的交互效果,但也存在一些问题,如首屏加载较慢、对搜索引擎的SEO不友好等。 而SSR则是在服务端生成完整的HTML页面,然后将渲染好的页面返回给浏览器展示。它的主要优点有: 1. 更快的首屏加载速度:由于服务端渲染页面时已经生成完整的HTML,用户在打开网页时能够立即看到内容,提高了页面的加载速度和用户体验。 2. 更好的SEO:由于搜索引擎爬虫主要是获取HTML内容进行分析,使用SSR能够保证搜索引擎能够正确的读取页面的内容,提高网站的搜索引擎排名。 3. 更好的可访问性:由于服务端渲染生成的页面已经包含了完整的内容和结构,相对于客户端渲染,能够更好地支持辅助功能和设备兼容性。 尽管SSR在首屏加载和SEO方面具有很大的优势,但也存在一些限制和挑战。比如对于复杂的交互和动态内容的处理较为复杂,需要更多的服务器负载和带宽资源。此外,SSR还需要考虑页面的缓存策略和更新机制,以保证渲染的页面始终能够与最新的数据保持同步。 总之,服务端渲染(SSR)是一种能够提高网页加载速度、改善SEO和可访问性的网页渲染技术。尽管它也有一些限制和挑战,但在某些场景下,特别是对于需要快速首屏加载和SEO友好的网站来说,SSR是一种值得采用的渲染方式。 ### 回答3: 服务端渲染(Server-Side Rendering,简称SSR)是指在服务器端进行网页内容的渲染,生成完整的HTML页面后再发送给客户端的一种网页渲染方式。相对于传统的客户端渲染(Client-Side Rendering,简称CSR),SSR具有以下特点: 1. SEO友好:由于搜索引擎爬虫只能解析HTML页面,传统的CSR渲染会导致搜索引擎无法获取到完整的页面内容。而使用SSR时,服务器端渲染出的HTML页面包含了完整的内容,有利于SEO优化和搜索引擎收录。 2. 更快的首次加载速度:在CSR中,页面初始化的过程需要先下载基础的HTML结构和JavaScript代码,然后再通过JavaScript请求并渲染数据,这个过程会产生较长的白屏时间。而SSR在服务器端就生成了完整的HTML页面,用户首次访问时可以直接加载这个HTML,减少首次加载时间。 3. 更好的用户体验:因为SSR在服务器端就渲染了完整的HTML页面,用户可以更快地看到网页的基本内容,提升了用户体验。而在CSR中,由于需要等待JavaScript的下载和执行,用户可能会出现闪动的页面或者突然出现的内容,造成用户体验不佳。 4. 兼容性好:由于SSR在服务器端渲染,不依赖于浏览器的特定功能或版本,对于不支持JavaScript或禁用JavaScript的浏览器仍然可以渲染出完整的页面。 5. 服务器压力较大:相对于CSRSSR需要在服务器端进行页面渲染,因此对服务器的压力较大,特别是当网站的流量较大时。服务器需要消耗更多的计算资源和内存来渲染页面并返回给客户端。 总结来说,服务端渲染SSR)通过在服务器端生成完整的HTML页面,提供了更好的SEO友好性、首次加载速度和用户体验,但增加了服务器的压力。它适用于对SEO要求较高、首次加载速度重要的网站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值