服务端渲染 VS 客户端渲染

简介: 服务端渲染与客户端渲染有啥区别呢?

服务端渲染 VS 客户端渲染

初步理解:

服务端渲染

image.png

服务器渲染的特点

  • 不足

我们看到的内容都是在服务器端渲染完的(JSP、PHP、ASP、ASP.NET、NODE...),客户端只是把所有渲染好的内容呈现在页面中而已,然而我们第一次渲染完,页面中的某部分数据要更新了,我们需要让服务器整体重新的渲染一次,把最新的页面(包含最新的数据)返回给客户端,客户端只能整体刷新页面展示最新的内容 => “全局刷新” 性能和体验等都非常的差,而且服务器压力也很大...

  • 优点

如果服务器性能比较高,页面呈现出来的速度会快一些,因为只要从服务器拿到内容,一切信息都已经准备好了

由于内容在服务器端就已经渲染好了,所以页面渲染完成后,在页面的源代码中都可以看到内容,有利于SEO搜索引擎优化

客户端渲染

image.png

  • 优点

    • 可以实现页面中内容局部刷新,而且渲染的操作交给客户端来做,这样的来处理,性能体验更好,也减轻了服务器的压力

    • 而且它还可以实现只把部分区域数据获取到,也即是不会一次全拿到整个页面的数据,等用户的滚动到某个区域后再请求对应的数据,实现数据的分批异步加载

  • 不足

由于客户端渲染的内容没有出现在页面的原代码中,不利于SEO优化

进一步总结:

服务端渲染(Server-Side Rendering,SSR)和客户端渲染(Client-Side Rendering,CSR)是两种不同的方式来生成和呈现网页内容的方法。它们有以下区别:

  • 数据获取和页面生成的地点:

服务端渲染:在服务器端完成数据获取和页面生成,并将最终的 HTML 页面发送给客户端。服务器会根据请求的 URL 生成相应的 HTML 内容,然后将其发送给浏览器。

客户端渲染:在客户端(通常是浏览器)中使用 JavaScript 代码执行数据获取和页面渲染。浏览器会下载 HTML 文件和相关的 JavaScript、CSS 和其他静态资源,然后在客户端执行 JavaScript 代码生成并渲染页面。

  • 加载和渲染速度:

服务端渲染:由于服务器在返回 HTML 页面之前已经完成数据获取和页面生成,因此浏览器可以立即显示完整的页面内容。这可以提供更快的初始加载速度,因为用户无需等待所有 JavaScript 文件都被下载和执行。

客户端渲染:浏览器需要先下载 HTML 文件,然后再下载执行所需的 JavaScript 代码,最后才能生成并渲染页面。这可能会导致较慢的初始加载速度,尤其是在网络条件不理想或页面复杂时。不过,一旦初始加载完成,后续的页面切换可能会更快,因为只需要获取数据并更新部分内容。
搜索引擎优化(SEO):

服务端渲染:由于服务器返回的是完整的 HTML 页面,搜索引擎可以直接解析和索引其中的内容,有利于网页在搜索结果中的排名和展示。

客户端渲染:由于初始返回的 HTML 文件可能是没有具体内容的骨架框架,并且页面内容是通过 JavaScript 动态生成的,搜索引擎可能无法正确解析和索引页面内容。尽管搜索引擎对客户端渲染的支持有所改善,但仍然存在一些限制。

综上所述,服务端渲染适合追求快速初始加载和 SEO 的需求,而客户端渲染则更适合需要复杂交互和动态内容更新的应用。根据项目需求和优化目标选择合适的渲染方式是很重要的。

目录
相关文章
|
XML 域名解析 JSON
【RESTful】RESTful API 接口设计规范 | 示例
【RESTful】RESTful API 接口设计规范 | 示例
12347 0
【RESTful】RESTful API 接口设计规范 | 示例
|
Java Maven
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
|
3月前
|
SQL 关系型数据库 MySQL
JOIN顺序优化:小表驱动大表的执行原则
在数据库查询优化中,“小表驱动大表”是一种提升SQL查询效率的常用策略。其核心思想是优先处理数据量较小的表,再与大表进行连接操作,从而减少数据扫描量、降低I/O开销并提高内存使用效率。通过显式指定JOIN顺序、使用EXISTS替代IN以及合理创建索引等方式,可以有效实现该原则。例如,在连接部门表(小表)和员工表(大表)时,先处理小表可显著提升查询性能。掌握这一原则有助于编写高效SQL语句,优化数据库整体表现。
|
弹性计算 负载均衡
阿里云负载均衡怎么配置?
很多人对负载均衡一头雾水,不知道怎么用,流程顺序的是什么的。根据本教程教大家如何使用阿里云的负载均衡······
20458 0
|
3月前
|
JSON API PHP
10多万语录随机一言API接口详解及调用示例
随机一言API可输出心灵鸡汤、至理名言等内容,适用于评论系统、签名生成等场景。完全免费,支持GET/POST请求。需注册获取专属ID和KEY,返回JSON格式数据,并提供PHP、Python调用示例。注意密钥安全与频率限制,内容版权归接口盒子所有。应用于每日推送、心情日记等多种场景。
|
12月前
|
机器学习/深度学习 数据采集 存储
时间序列预测新突破:深入解析循环神经网络(RNN)在金融数据分析中的应用
【10月更文挑战第7天】时间序列预测是数据科学领域的一个重要课题,特别是在金融行业中。准确的时间序列预测能够帮助投资者做出更明智的决策,比如股票价格预测、汇率变动预测等。近年来,随着深度学习技术的发展,尤其是循环神经网络(Recurrent Neural Networks, RNNs)及其变体如长短期记忆网络(LSTM)和门控循环单元(GRU),在处理时间序列数据方面展现出了巨大的潜力。本文将探讨RNN的基本概念,并通过具体的代码示例展示如何使用这些模型来进行金融数据分析。
1079 2
|
10月前
|
数据挖掘 Linux Windows
服务器数据恢复—服务器raid0数据恢复及数据迁移的案例
某品牌服务器上有一组由两块SAS硬盘组建的raid0阵列,上层是windows server操作系统+ntfs文件系统。服务器上一个硬盘指示灯显示黄颜色,该指示灯对应的硬盘离线,raid不可用。
|
Web App开发 前端开发 JavaScript
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
技术心得记录:瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)
319 0
|
12月前
|
缓存 监控 Java
解决 Groovy 引起的一次 OOM 告警
线上OOM告警了,一个简单的case演示如何分析和解决。
171 2
|
存储 小程序 JavaScript